簡體   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