列表我有一個數據幀等如下:分割數據幀裝入列的子集的中的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