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