2017-08-24 149 views
2

爲什麼dplyr::one_of()被稱爲?所有其他select_helpers名稱對我而言是有意義的,所以我想知道是否有我不明白的one_of()方面。one_of()爲什麼調用它?

我對one_of()的理解是,它只允許您使用名稱的字符向量來選擇變量,而不是將它們的名稱放入select()調用中,但是您可以獲得所有名稱位於向量中的變量,而不僅僅是其中之一他們。那是錯的,如果這是正確的,名字one_of()從哪裏來?

+4

我覺得可以回答,唯一的人是dplyr'的'開發商。嘗試通過電子郵件發送維護者(「dplyr」)。 –

回答

5

我想到的方式是select()最終評估爲邏輯向量。因此,如果使用starts_with,它會遍歷數據框中的變量,並詢問變量名是否以正確的字符集開始。 one_of做了同樣的事情,但詢問變量名是否是字符向量中列出的名稱之一。但正如他們所說,命名事情很難!

4

one_of允許猜測或子集匹配

比方說,我知道,一般我的列名來自c("mpg","cyl","garbage"),但我不知道哪些列會因爲互動性的存在/反應

mtcars %>% select(one_of(c("mpg","cyl","garbage"))) 

求值,但提供的消息

Warning message: 
Unknown variables: `garbage` 

相反

mtcars %>% select(mpg, cyl, garbage) 

不評估,並給出了錯誤

Error in overscope_eval_next(overscope, expr) : 
    object 'garbage' not found  
相關問題