如何使用dplyr库选择特定的变量,然后将一个变量与特定的值进行匹配

2w2cym1i  于 2023-06-03  发布在  其他
关注(0)|答案(1)|浏览(118)

我需要使用dplyr中的filter函数来检索所有名为Interaction_Type的变量等于“Print”的值;然而,下面的代码没有从我的数据框df1中检索任何内容,只是列出了具有'Interaction. ID','Name. ID','Created.At'的变量,没有任何值:

df2 <- df1 %>% select (c('Interaction.ID','Name.ID','Created.At','Interaction_Type'))
           %>% filter ('Interaction_Type' == "print")

应该使用match()函数吗?

ogsagwnx

ogsagwnx1#

问题是filter()函数需要一个变量名(不带引号),而不是一个字符串。从Interaction周围删除引号将解决问题。考虑以下几点:

library(dplyr)
mtcars %>% filter("cyl" == 4)
#>  [1] mpg  cyl  disp hp   drat wt   qsec vs   am   gear carb
#> <0 rows> (or 0-length row.names)

在上面的示例中,没有返回任何结果,因为不存在字符串"cyl"等于数字4的示例。在下面的代码中,filter试图找到变量cyl等于4的情况-这是所需的结果。

mtcars %>% filter(cyl == 4)
#>                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#> Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
#> Merc 240D      24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
#> Merc 230       22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
#> Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
#> Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
#> Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
#> Toyota Corona  21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
#> Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
#> Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
#> Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
#> Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

创建于2023-05-28带有reprex v2.0.2

相关问题