我有这样的矩阵
mydf <- data.frame(A = rnorm(24*3),
B = rnorm(24*3),
C=rnorm(24*3),
D=rep(0:23, 3),
E=rep(1:3, each=24))
其中D列是&#39;小时&#39;而且E是“天”。我会有一个函数,每天收集每天不同变量中三列(A,B,C)的h24小时信息。在此示例中,结果是具有不同名称的9个向量。谢谢
答案 0 :(得分:1)
通常你要做的是一个函数,它检索自定义日的3个数组,并在最后一列unique(mydf$E)
f = function(day) {
return( data.frame(A=c(mydf[mydf$E == day,1]),
B=c(mydf[mydf$E == day,2]),
C=c(mydf[mydf$E == day,3])))
}
答案 1 :(得分:0)
以下内容适用于您吗?
unlist(lapply(split(mydf, mydf$E), function(x) as.list(x[,1:3])), recursive = FALSE)
$`1.A`
[1] -0.02234168 -1.39567164 -1.36910883 -0.97186737 0.10698377 2.50659491 -0.34669049 -0.16750679 1.25631564 0.53672197 -0.65851597
[12] 1.29143728 1.01700434 -1.06702387 0.99388570 0.07563692 0.25858937 -0.28920121 -0.23395194 0.55810883 0.93800027 -0.20731405
[23] -0.89344069 0.64916554
$`1.B`
[1] -0.77196984 -1.51971782 -0.43249607 0.55418363 0.61189820 0.13621661 -0.17748362 0.83914191 0.19936105 1.26178645 -1.64614677
[12] 1.89813460 -2.02731987 0.59106807 -1.10953633 1.59606618 -0.82820346 -0.03956721 -1.85002284 -0.59337005 -1.02890463 -0.50953969
[23] 0.22711980 0.70982842
...