繁体   English   中英

有人可以解释 R 软件中 %in% 的 arguments 的顺序吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM