列表我有一个数据帧等如下:分割数据帧装入列的子集的中的R
> set.seed(123)
> dat <- data.frame(samples = c("a.1","a.2","a.3","b.1","b.2","b.3"), ID = c(rep("A",3),rep("B",3))
> dat
samples ID
1 a.1 A
2 a.2 A
3 a.3 A
4 b.1 B
5 b.2 B
6 b.3 B
> practice.data <- data.frame(a.1 = round(runif(5)), a.2=round(runif(5)),
a.3=round(runif(5)),b.1=round(runif(5)),b.2=round(runif(5)),b.3=round(runif(5)))
> practice.data
a.1 a.2 a.3 b.1 b.2 b.3
1 0 0 1 1 1 1
2 1 1 0 0 1 1
3 0 1 1 0 1 1
4 1 1 1 0 1 0
5 1 0 0 1 1 0
在上述例子中,我想找出如何获得的前三列到与最后三列分开的对象(即,由dat
中的ID
分开)。在将practice.data
放入列表后,我计划使用lapply函数对每个列表对象的行进行求和,并为每个ID返回一个向量。
我已经试过这个for循环,但它是相当低效率,并有太多的问题,所以似乎使用列表和应用可能是最好的,如果我能弄清楚如何做到这一点。
的最终期望的输出会是这样的:
A B
1 3
2 2
2 2
3 1
1 2