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

有人能解释一下R软件中%in%的参数顺序吗?,r,data-visualization,dataset,matching,function,R,Data Visualization,Dataset,Matching,Function,“gapminder”是一个数据集,包含每个国家和每年的生育率和GDP等变量。我想访问并比较2015年土耳其和斯里兰卡的生育率 library(dslabs) data(gapminder) 当我在%中使用%时,如何知道哪个参数首先出现?在我的R基础课程中,有人解释说,首先我们写下我们寻找的东西,然后是我们搜索它的池。因此,在我的例子中,我们在所有国家中寻找斯里兰卡和土耳其。代码应该是 gapminder %>% filter(year == 2015 & c("Sri La

“gapminder”是一个数据集,包含每个国家和每年的生育率和GDP等变量。我想访问并比较2015年土耳其和斯里兰卡的生育率

library(dslabs)
data(gapminder)
当我在%中使用%时,如何知道哪个参数首先出现?在我的R基础课程中,有人解释说,首先我们写下我们寻找的东西,然后是我们搜索它的池。因此,在我的例子中,我们在所有国家中寻找斯里兰卡和土耳其。代码应该是

gapminder %>%
  filter(year == 2015 & c("Sri Lanka", "Turkey") %in% country)
但这是错误的,返回的不是提供的代码:

gapminder %>%
  filter(year == 2015 & country %in% c("Sri Lanka", "Turkey"))
但文件明确指出:
“x%在%表中,x=要匹配的值(对于美国、土耳其、斯里兰卡),表=要匹配的值(国家列表)”。为什么我的第一个代码错了?有人能给我一个简单的规则,先写哪个参数吗?

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


a``dplyr和我相信所有
tidyverse
系列包都以R数据帧作为参数。确保
gapminder
是R数据帧。您可以使用
class(gapminder)
检查对象类型。除此之外,您的代码是正确的,并且应该生成所需的输出。至于参数的顺序,
%%>%%
后面的第一个函数将采用
%%>%%
前面的对象。在这种情况下,
filter
函数的第一个参数是
gapminder
。这将为您提供2015年的数据以及斯里兰卡和土耳其的数据


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

c(“斯里兰卡”、“土耳其”)%in%country
返回一个布尔值,即斯里兰卡或土耳其是否在该国,这对您的数据不起作用。frame您需要
country%in%c(“斯里兰卡”、“土耳其”)
,因为这是一个与您的数据一样长的布尔值。frame谢谢,这再加上愚蠢的沃尔夫所说的话,回答了我的问题。

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