R:在对数据框进行子集化时遗漏未定义的列
R: Leaving out undefined columns when subsetting a dataframe
我有一个包含 300 多列的数据框 df1,我试图根据 list1 中的几十个输入按列名将其子集化为 df2。但是,list1 中的某些项目实际上并不是 df1 中的列名。所以,我得到一个 "undefined columns" 错误:
df2 <- df1[,list1]
Error in [.data.frame
(df1, , list1) :
undefined columns selected
我知道这个错误的原因了。但是我无法通过 list1 并查看哪些出现在 df1 中,哪些没有出现。因为我必须用许多不同的列表多次执行此操作。有没有一种方法可以简单地忽略那些(而不包括子集 df2 中的 list1 中的那些空列名称值)?
感谢您的帮助。
怎么样:df2 <- df1[,list1[list1 %in% names(df1)]]
我希望有一个 nicer/shorter) 解决方案供我自己使用。
这是另一个
df1[,intersect(names(df1), list1)]
我有一个包含 300 多列的数据框 df1,我试图根据 list1 中的几十个输入按列名将其子集化为 df2。但是,list1 中的某些项目实际上并不是 df1 中的列名。所以,我得到一个 "undefined columns" 错误:
df2 <- df1[,list1]
Error in[.data.frame
(df1, , list1) :
undefined columns selected
我知道这个错误的原因了。但是我无法通过 list1 并查看哪些出现在 df1 中,哪些没有出现。因为我必须用许多不同的列表多次执行此操作。有没有一种方法可以简单地忽略那些(而不包括子集 df2 中的 list1 中的那些空列名称值)?
感谢您的帮助。
怎么样:df2 <- df1[,list1[list1 %in% names(df1)]]
我希望有一个 nicer/shorter) 解决方案供我自己使用。 这是另一个
df1[,intersect(names(df1), list1)]