[未知用户]
谢谢!这个办法果然可以!
我在追问个问题.刚我在看书的时候,看到plyr包的adply函数,如果不指定.fun=的参数的话,是把array转化为dataframe.
> price.array=array(unlist(price.list),dim = c(42,4,3),dimnames = list(NULL,colnames(price)[-c(1:2)],unique(price[,2])))
>
> dim(price.array)
[1] 42 4 3
>
> price.dataframe=adply(price.array,.margins=3)
>
> class(price.dataframe)
[1] "data.frame"
> head(price.dataframe)
X1 equipment gdp investment agriculture
1 shanghai 99.6 108.5 96.6 100.4
2 shanghai 99.6 108.4 97.5 101.6
3 shanghai 99.7 108.7 100.2 100.2
4 shanghai 99.7 108.8 100.9 102.9
5 shanghai 99.6 108.9 101.1 102.1
6 shanghai 99.6 108.8 102.2 100.1
>
当时我就想当然的认为,那是不是laply函数不指定.fun=的参数的话,是不是把list转化为array?但结果表明不行.
> try1=laply(price.list)
Error in laply(price.list) : .fun is not a function.
>
> try2=laply(price.list,.fun=array)
> try2
, , 1
43 44 45 46 47 48
[1,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[2,] NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL
49 50 51 52 53 54
[1,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[2,] NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL
55 56 57 58 59 60 61 62 63 64 65 66 67
[1,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[2,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
68 69 70 71 72 73 74 75 76 77 78 79 80
[1,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[2,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
81 82 83 84
[1,] NULL NULL NULL NULL
[2,] NULL NULL NULL NULL
[3,] NULL NULL NULL NULL
, , 2
43 44 45 46 47 48 49 50 51 52 53 54 55
[1,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[2,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
56 57 58 59 60 61 62 63 64 65 66 67 68
[1,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[2,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
69 70 71 72 73 74 75 76 77 78 79 80 81
[1,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[2,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
82 83 84
[1,] NULL NULL NULL
[2,] NULL NULL NULL
[3,] NULL NULL NULL
, , 3
43 44 45 46 47 48 49 50 51 52 53 54 55
[1,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[2,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
56 57 58 59 60 61 62 63 64 65 66 67 68
[1,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[2,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
69 70 71 72 73 74 75 76 77 78 79 80 81
[1,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[2,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
82 83 84
[1,] NULL NULL NULL
[2,] NULL NULL NULL
[3,] NULL NULL NULL
, , 4
43 44 45 46 47 48 49 50 51 52 53 54 55
[1,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[2,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
56 57 58 59 60 61 62 63 64 65 66 67 68
[1,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[2,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
69 70 71 72 73 74 75 76 77 78 79 80 81
[1,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[2,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
[3,] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
82 83 84
[1,] NULL NULL NULL
[2,] NULL NULL NULL
[3,] NULL NULL NULL
>
> try3=laply(price.list,.fun=array,42,4,3)
Error in FUN(X[[i]], ...) : unused argument (3)
>
>
> try4=laply(price.list,.fun=array,42,4)
> try4
1 2 3 4 5 6
[1,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[2,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[3,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
7 8 9 10 11 12
[1,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[2,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[3,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
13 14 15 16 17 18
[1,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[2,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[3,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
19 20 21 22 23 24
[1,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[2,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[3,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
25 26 27 28 29 30
[1,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[2,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[3,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
31 32 33 34 35 36
[1,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[2,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[3,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
37 38 39 40 41 42
[1,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[2,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
[3,] Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42 Numeric,42
>
我想问下,是laply没有这个功能,还是我操作得不对?