[英]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)
但这是错误的,并且返回的不是所提供的代码:
gapminder %>%
filter(year == 2015 & country %in% c("Sri Lanka", "Turkey"))
然而,文档明确指出:“x %in% table,x = 要匹配的值(对于我们土耳其、斯里兰卡),table = 要匹配的值(国家列表)”。 为什么我的第一个代码是错误的呢? 有人可以给我一个简单的规则,先写哪个论点?
%in%
查找一个 object 的元素是否存在于另一个元素中。 它在内部使用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
```dplyr 我相信所有tidyverse
系列软件包都将 R dataframe 作为参数。 确保gapminder
是 R dataframe。 您可以使用class(gapminder)
检查 object 类型。 除此之外,您的代码是正确的,应该产生所需的 output。 至于 arguments 的顺序, %>%
%>%
的 object 。 在这种情况下, filter
function 的第一个参数是gapminder
。 这应该会给你 2015 年的数据以及该国是斯里兰卡和土耳其的地方
data(gapminder)
gapminder %>%
filter(year == 2015 & country %in% c("Sri Lanka", "Turkey"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.