【发布时间】:2020-06-13 04:57:29
【问题描述】:
假设我有一个庞大的数据框,并且在多个列中我有一个非常大的唯一代码列表,我想使用这些代码来选择某些行来子集原始数据框。大约有 1000 个代码,我希望所有代码都遵循。例如,我有大约 30 列包含代码,我只想在这些列中的任何一个中获取代码为 100 到 120 的行。
要做到这一点还有很长的路要走,就像
new_dat <- df[which(df$codes==100 | df$codes==101 | df$codes1==100
我对每个可能包含这些代码的列的每个可能的代码重复此操作。有没有更方便的方式来做到这一点?
我想尝试使用dplyr 的select 函数解决这个问题,但我无法确定它是否适用于我的情况
获取iris 数据集
假设我想要在列名中包含单词 Sepal 的任何列中包含值 4.0-5.0 的所有行。
#this only goes for 4.0
brand_new_df <- select(filter(iris, Sepal.Length ==4.0 | Sepal.Width == 4.0))
但我想要的是类似
brand_new_df <- select(filter(iris, contains(Sepal) == 4.0:5.0))
有没有 dplyr 方法可以做到这一点?
【问题讨论】: