谁能解释一下R软件中%in%的参数顺序?

问题描述 投票:0回答:1

"gapminder "是一个数据集,其中有每个国家和每年的生育率和国内生产总值等变量。我想访问并比较2015年土耳其和斯里兰卡的生育率。

library(dslabs)
data(gapminder)

当我使用%in%的时候,我怎么知道哪个论点在先?在我的R基础课程中,有人解释说,首先我们要写出我们要找的东西,然后写出我们搜索它的池子。所以在我的例子中,我们在所有国家中寻找斯里兰卡和土耳其这两个国家。代码应该是

gapminder %>%
  filter(year == 2015 & c("Sri Lanka", "Turkey") %in% country)

但这是错误的,返回的不是所提供的代码。

gapminder %>%
  filter(year == 2015 & country %in% c("Sri Lanka", "Turkey"))

然而文档中明确写道:"x %in% table, x = 要匹配的值(对于我们土耳其、斯里兰卡),table = 要匹配的值(国家列表)"。那为什么我的第一个代码是错误的呢?谁能给我一个简单的规则,先写哪个参数?

r data-visualization dataset matching function
1个回答
2
投票

%in% 查找一个对象的元素是否存在于另一个元素中。它内部使用 match 并返回逻辑(布尔)值。例如:

a <- c("C", "A", "B")
b <- c("A", "B")

a %in% b
# [1] FALSE  TRUE  TRUE
b %in% a
# [1] TRUE TRUE
match(a, b)
# [1] NA  1  2
match(b, a)
# [1] 2 3

0
投票

```dplyr和我相信所有的。tidyverse 系列包以R数据框架作为参数。请确保 gapminder 是一个R数据框架。你可以使用 class(gapminder) 来检查对象类型。除此以外,你的代码是正确的,应该会产生预期的输出。至于参数的顺序,第一个函数是在 %>% 会把前面的对象 %>%. 在这种情况下,第一个参数 filter 功能是 gapminder. 这应该给你2015年的数据,国家是斯里兰卡和土耳其。


data(gapminder)
gapminder %>%
  filter(year == 2015 & country %in% c("Sri Lanka", "Turkey"))
© www.soinside.com 2019 - 2024. All rights reserved.