有人可以解释 R 软件中 %in% 的参数顺序吗?
Can someone explain the order of arguments for %in% in R software?
"gapminder" 是一个数据集,其中包含每个国家/地区和每年的生育率和 GDP 等变量。我想访问和比较 2015 年土耳其和斯里兰卡的生育率。
library(dslabs)
data(gapminder)
当我使用 %in% 时,我如何知道哪个参数先出现?在我的 R 基础课程中,有人解释说,首先我们写下我们要查找的内容,然后是我们在其中搜索它的池。所以在我的例子中,我们在所有国家中寻找斯里兰卡和土耳其这两个国家。代码应该是
gapminder %>%
filter(year == 2015 & c("Sri Lanka", "Turkey") %in% country)
但这是错误的,returns 与提供的代码不同:
gapminder %>%
filter(year == 2015 & country %in% c("Sri Lanka", "Turkey"))
然而文档清楚地指出:
"x %in% table, x = the values to be matched (for us Turkey, Sri Lanka), table = the values to be matched against (list of countries)"。那为什么我的第一个代码是错误的呢?谁能给我一个简单的规则,先写哪个参数?
%in%
查找一个对象的元素是否存在于另一个元素中。它在内部使用 match
和 returns 逻辑(布尔)值。 示例:
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
```dplyr 和我相信所有 tidyverse
系列包都将 R 数据框作为参数。确保 gapminder
是 R 数据帧。您可以使用 class(gapminder)
检查对象类型。除此之外,您的代码是正确的,应该会产生所需的输出。至于参数的顺序,%>%
之后的第一个函数将采用 %>%
之前的对象。在这种情况下,filter
函数的第一个参数是 gapminder
。那应该给你 2015 年的数据,国家是斯里兰卡和土耳其
data(gapminder)
gapminder %>%
filter(year == 2015 & country %in% c("Sri Lanka", "Turkey"))
"gapminder" 是一个数据集,其中包含每个国家/地区和每年的生育率和 GDP 等变量。我想访问和比较 2015 年土耳其和斯里兰卡的生育率。
library(dslabs)
data(gapminder)
当我使用 %in% 时,我如何知道哪个参数先出现?在我的 R 基础课程中,有人解释说,首先我们写下我们要查找的内容,然后是我们在其中搜索它的池。所以在我的例子中,我们在所有国家中寻找斯里兰卡和土耳其这两个国家。代码应该是
gapminder %>%
filter(year == 2015 & c("Sri Lanka", "Turkey") %in% country)
但这是错误的,returns 与提供的代码不同:
gapminder %>%
filter(year == 2015 & country %in% c("Sri Lanka", "Turkey"))
然而文档清楚地指出: "x %in% table, x = the values to be matched (for us Turkey, Sri Lanka), table = the values to be matched against (list of countries)"。那为什么我的第一个代码是错误的呢?谁能给我一个简单的规则,先写哪个参数?
%in%
查找一个对象的元素是否存在于另一个元素中。它在内部使用 match
和 returns 逻辑(布尔)值。 示例:
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
```dplyr 和我相信所有 tidyverse
系列包都将 R 数据框作为参数。确保 gapminder
是 R 数据帧。您可以使用 class(gapminder)
检查对象类型。除此之外,您的代码是正确的,应该会产生所需的输出。至于参数的顺序,%>%
之后的第一个函数将采用 %>%
之前的对象。在这种情况下,filter
函数的第一个参数是 gapminder
。那应该给你 2015 年的数据,国家是斯里兰卡和土耳其
data(gapminder)
gapminder %>%
filter(year == 2015 & country %in% c("Sri Lanka", "Turkey"))