【发布时间】:2017-09-28 13:22:43
【问题描述】:
我有一个包含变量序列的数据框c1...c20。这些变量中的每一个都包含一个代码。我有一个代码向量code.vec,我想对数据框进行子集化以包含c1|c2|c3|...|c20 在code.vec 中的记录。
示例数据(示例仅使用 3 个cn 变量):
code.vec<-c("T1", "T2", "T3", "T4")
c1<-c("T1", "X1", "T6", "R5")
c2<-c("R4", "C6", "C7", "X3")
c3<-c("C5", "C2", "X4", "T2")
df<-data.frame(c1, c2, c3)
这就是我目前正在做的事情:
library(dplyr)
df %>% filter(c1 %in% code.vec | c2 %in% code.vec | c3 %in% code.vec)
c1 c2 c3
1 T1 R4 C5
2 R5 X3 T2
这行得通,但由于真正的数据框有 20 个cn 变量,因此需要大量输入。似乎应该有一个简单的应用或循环解决方案(并且在 SAS 中使用数组和 do 循环很容易做到),但我无法在 R 中找到解决方案,我也找不到任何类似的问题在这里。
【问题讨论】: