【问题标题】:looking up strings in different columns in R在 R 的不同列中查找字符串
【发布时间】:2013-04-23 15:20:06
【问题描述】:

我有一个包含 4 列、数百行的数据集,这里有一个小示例:

A      B     C     D     
V1     V2    V100    V4
V15    V5    V6    V100 
V8     V3    V9    V10
V3     V11   V12   V13

我想获取列 A 中但不在其他列中的变量列表(如上例中的 V1),然后获取另一个列 C 和 D 中但不在其他列中的变量列表(如 V100在示例中)等等。有什么简单的命令可以做到这一点而不必进入复杂的 for 循环?

重要提示:我的名字太复杂了(而且它们包含括号、斜杠、反斜杠和反斜杠),这只是我所拥有的名称的简单表示。

谢谢,

【问题讨论】:

  • 您的示例似乎与您的描述不匹配 - 例如V3 在所有列中,您想要 A 列中的 V1、V15、V8 吗?请说清楚一点
  • @eddi,对不起,我弄错了变量,我编辑了问题,感谢您的通知。

标签: string r variables search multiple-columns


【解决方案1】:

构造一个reproducible example

set.seed(1)
d <- data.frame(replicate(4,paste0("V",sample(1:10,4,replace=TRUE))))
names(d) <- LETTERS[1:4]
#    A   B  C  D
#1  V3  V3 V7 V7
#2  V4  V9 V1 V4
#3  V6 V10 V3 V8
#4 V10  V7 V2 V5

我相信你正在寻找setdiff

with(d,setdiff(A,D))

如果您想进行多重比较,Reduce 可能会有所帮助:

with(d,Reduce(setdiff,list(A,B,C,D)))

如果您想将一列与许多(或所有)其他列进行比较:

Reduce(setdiff,c(d[,"A",drop=FALSE],d[,setdiff(names(d),"A"),drop=FALSE]))

【讨论】:

    猜你喜欢
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 2012-10-24
    相关资源
    最近更新 更多