【问题标题】:R: Leaving out undefined columns when subsetting a dataframeR:对数据框进行子集化时省略未定义的列
【发布时间】:2015-01-14 19:49:56
【问题描述】:

我有一个包含 300 多列的数据框 df1,我正在尝试根据 list1 中的几十个输入按列名将其子集到 df2。但是,list1 中的某些项目实际上并不是 df1 中的列名。所以,我得到一个“未定义的列”错误:

df2 [.data.frame(df1, , list1) 中的错误:
选择了未定义的列

我知道这个错误的原因。但是我无法通过 list1 来查看哪些出现在 df1 中,哪些没有出现。因为我必须使用许多不同的列表多次执行此操作。有没有办法简单地忽略这些(并且不包括来自子集 df2 的 list1 中的那些空列名称值)?

感谢您的热心帮助。

【问题讨论】:

    标签: r error-handling


    【解决方案1】:

    比如:df2 <- df1[,list1[list1 %in% names(df1)]]

    【讨论】:

    • 超级有帮助。谢谢@Andrew Taylor
    【解决方案2】:

    我希望有一个更好/更短的解决方案供我自己使用。 这是另一个

    df1[,intersect(names(df1), list1)]
    

    【讨论】:

      猜你喜欢
      • 2018-12-05
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 2021-12-03
      • 2021-10-13
      相关资源
      最近更新 更多