我有一個73335x2882的數據框架df,並且我想根據列df $ rs的因子提取特定的行。爲了讓我的問題可以理解,我創建了一個迷你數據框架u。在矩陣M2的列C'中出現的矩陣M1的列C中訪問因子 - 在R
> rs = c("rs1","rs2","rs3","rs4","rs5")
> m = matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15),nrow=5)
> u=data.frame(rs,m)
> u
rs X1 X2 X3
1 rs1 1 6 11
2 rs2 2 7 12
3 rs3 3 8 13
4 rs4 4 9 14
5 rs5 5 10 15
現在,我創建另一個數據幀瓦特。
> mat = matrix(c(1,2,3,4,5,6),nrow=2)
> rs = c("rs3","rs5")
> w = data.frame(rs, mat)
> w
rs X1 X2 X3
1 rs3 1 3 5
2 rs5 2 4 6
我想要做的是現在從u中提取所有行,其中u $ rs包含在w $ rs中。因此,我想獲得一個最終的答案:
rs X1 X2 X3
3 rs3 3 8 13
5 rs5 5 10 15
我曾嘗試沒有成功如下:
> u[w$rs,]
rs X1 X2 X3
1 rs1 1 6 11
2 rs2 2 7 12
我也試過
> subset(u, rs == w$rs)
Error in Ops.factor(rs, w$rs) : level sets of factors are different
In addition: Warning message:
In is.na(e1) | is.na(e2) :
longer object length is not a multiple of shorter object length
我明白,我可以使用apply(或循環)並驗證u $ rs的每個因子是否爲w $ rs的元素。但我對此並不滿意,因爲它會非常緩慢。
有沒有人有關於如何有效實施這個想法?
非常感謝。