r-从变量中的列中选择行

  • 本文关键字:选择 变量 r dataframe row
  • 更新时间 :
  • 英文 :


我有一个带有命名列的数据集。列的名称也在一个变量中。我希望能够选择满足列"0"上的条件的所有行;col";。

在这里,我想选择其值在";col";列匹配条件"<2〃;。

name = "col"
dataset = data.frame(col = 1:3)

我试着用";eval";在子集中;选择";dplyr包的功能,但它并没有达到我想要的效果(或者我滥用了它(。

有简单的方法吗?

如果您是R的新手,我建议您使用tidyverse包集,包括对此类问题非常有用的dplyr,这样您就可以获得更即时可读和可理解的代码。您可以使用install.packages('tidyverse')获取此软件包。安装后,回答您的问题:

library(dplyr)
df <- data.frame(
col = c(0:10),
another_col = c(10:20),
third_col = c(25:35)
)
dynamic_name <- "col"
filter_at(df, dynamic_name, ~ .x < 2)

注意:tidyverse系列包通常接受公式语法(即~表达式(作为引入匿名(lambda(函数的一种方式,因此~ .x < 2是一个在传入的值小于2时返回TRUE的函数。

请参阅下文。

a <- 1:5
b <- 6:10
namevar <- "a"
df <- data.frame(a,b)
df[df[,namevar] %in% c(1:3),]
a b
1 1 6
2 2 7
3 3 8

这里发生的是,df[,namevar] %in% c(1:3)给出了一个向量TRUEFALSE,这取决于条件是否满足。

然后将该布尔向量作为索引传递给df,得到条件为TRUE的所有行。

有关%in%的更多详细信息,请参阅help(is.element())

相关内容

  • 没有找到相关文章

最新更新