簡體   English   中英

使用“across”更改 dplyr 中的多個列

[英]Using “across” to change multiple columns in dplyr

我有 100 列都是數字的。 第一列是一個 ID 號,需要保持數字,我需要將其他列更改為因子。 我一直在嘗試使用 function 中的新(ish) across dplyr執行此操作,但我無法成功地將 function 應用於除第一列之外的所有列。 根據我的閱讀,我應該能夠做到以下幾點:

df %>% mutate(across(everything(!c(ID)), as.factor))

但這會產生錯誤:“不能對不存在的列進行子集化。位置 101、102 等不存在。” 我究竟做錯了什么?

而不是everything的否定( ! ),我們只需要-或@27 φ 9 提到的! 沒有everything也可以工作

library(dplyr)
df <- df %>%
     mutate(across(-ID, factor))

如果多於一列,將其包裹在c

df <- df %>%
        mutate(across(-c(ID, ID2), factor))

暫無
暫無

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

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