簡體   English   中英

dplyr mutate_at 但使用任何而不是全部

[英]dplyr mutate_at but using any instead of all

我想使用mutate_at(col_names,as.numeric)但有時 dataframe 中不包含列。 例如以下工作正常:

df <- data.frame('a'=c('1','2','3'),
           'b'=c('1','2','3'),
           'c'=c(1,2,3),
           'd'=c('1','2','3'))

col_names=c('a','b','d')

df |> mutate_at(col_names,as.numeric)

但是,如果我將其中一個 col_names 換成不存在的東西,則會出現錯誤:

col_names=c('a','b','frog')

df |> mutate_at(col_names,as.numeric)

Error: Can't subset columns that don't exist.
x Column `frog` doesn't exist.

最終我認為我正在尋找的是像 mutate_any() 這樣的東西。

mutate_at已被棄用,現在首選 cross(),它與across() any_of()all_of()輔助函數(以及其他 select 輔助函數)一起使用。

df |> mutate(across(any_of(col_names), as.numeric))

有關更多選項和示例,請參閱?across幫助頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM