[R] How to create an array of list?

Gang Chen gangchen at mail.nih.gov
Thu Nov 8 22:51:46 CET 2007


I have trouble creating an array of lists? For example, I want to do  
something like this

clist <- array(data=NA, dim=c(7, 2, 3));
for (n in 1:7) {
    for (ii in 1:2) {
	for (jj in 1:3) {
		if (cc[n, ii, jj] == "0") { clist[n, ii, ][[jj]] <- list(levels 
(MyModel[,colnames(MyModel)[jj+1]])); }
	   else  { clist[n, ii, ][[jj]] <- cc[n, ii, jj]; }
	   names(clist[n, ii, ][[jj]]) <- colnames(MyModel)[jj];
	}
	}
}

but I get an error:

Error in `*tmp*`[n, ii, ] : incorrect number of dimensions

Is it because each list has different number of components? The two  
variables involved in the loop, character matrix cc and dataframe  
MyModel are shown below:

 > cc
, , 1

      [,1] [,2]
[1,] "U"  "T"
[2,] "0"  "0"
[3,] "0"  "0"
[4,] "0"  "0"
[5,] "U"  "T"
[6,] "U"  "T"
[7,] "U"  "T"

, , 2

      [,1] [,2]
[1,] "0"  "0"
[2,] "M"  "F"
[3,] "0"  "0"
[4,] "0"  "0"
[5,] "0"  "0"
[6,] "0"  "0"
[7,] "0"  "0"

, , 3

      [,1] [,2]
[1,] "0"  "0"
[2,] "0"  "0"
[3,] "Lo" "Hi"
[4,] "No" "Hi"
[5,] "Hi" "Hi"
[6,] "Lo" "Lo"
[7,] "No" "No"

 > MyModel
    Trust Sex Freq
1      T   F   Hi
2      T   F   Hi
3      T   F   Hi
4      T   F   Hi
5      T   F   Hi
6      T   F   Hi
7      T   F   Hi
8      T   F   Hi
9      T   F   Lo
10     T   F   Lo
11     T   F   Lo
12     T   F   Lo
13     T   F   Lo
14     T   F   Lo
15     T   F   Lo
16     T   F   Lo
17     T   F   No
18     T   F   No
19     T   F   No
20     T   F   No
21     T   F   No
22     T   F   No
23     T   F   No
24     T   F   No
25     T   M   Hi
26     T   M   Hi
27     T   M   Hi
28     T   M   Hi
29     T   M   Hi
30     T   M   Hi
31     T   M   Hi
32     T   M   Hi
33     T   M   Lo
34     T   M   Lo
35     T   M   Lo
36     T   M   Lo
37     T   M   Lo
38     T   M   Lo
39     T   M   Lo
40     T   M   Lo
41     T   M   No
42     T   M   No
43     T   M   No
44     T   M   No
45     T   M   No
46     T   M   No
47     T   M   No
48     T   M   No
49     U   F   Hi
50     U   F   Hi
51     U   F   Hi
52     U   F   Hi
53     U   F   Hi
54     U   F   Hi
55     U   F   Hi
56     U   F   Hi
57     U   F   Lo
58     U   F   Lo
59     U   F   Lo
60     U   F   Lo
61     U   F   Lo
62     U   F   Lo
63     U   F   Lo
64     U   F   Lo
65     U   F   No
66     U   F   No
67     U   F   No
68     U   F   No
69     U   F   No
70     U   F   No
71     U   F   No
72     U   F   No
73     U   M   Hi
74     U   M   Hi
75     U   M   Hi
76     U   M   Hi
77     U   M   Hi
78     U   M   Hi
79     U   M   Hi
80     U   M   Hi
81     U   M   Lo
82     U   M   Lo
83     U   M   Lo
84     U   M   Lo
85     U   M   Lo
86     U   M   Lo
87     U   M   Lo
88     U   M   Lo
89     U   M   No
90     U   M   No
91     U   M   No
92     U   M   No
93     U   M   No
94     U   M   No
95     U   M   No
96     U   M   No

Thanks,
Gang



More information about the R-help mailing list