[英]Coercing multiple time-series columns to factors in large dataframe
我想知道是否存在將字符變量轉換為因數的“簡便/快捷”方法。
我知道,可以用列名創建一個向量,然后使用lapply
。 但是,我正在處理具有200多個變量的大型數據框,因此最好不必在向量中寫入200多個名稱。
我還知道,我可以使用lapply
, type.convert
和sapply
來強制整個數據幀,但是由於我正在使用時間序列數據,其中一些是分類的,有些是數字的,因此我對此也不感興趣。
有什么辦法可以使用列號嗎? 即[ ,2:200]
? 我嘗試了以下方法,但是沒有任何運氣:
df[ ,2:30] <- lapply(df[ ,2:30], type.convert)
sapply(df, factor)
使用上面的解決方案,我仍然需要做多個,但是比寫所有變量名還要快。
我也感覺到循環可能在這里可用,但是我不確定如何寫出它,甚至不確定這樣做是不是一種方法。
df[ ,2:30] <- lapply(df[ ,2:30], as.factor)
在撰寫本文時,您需要將(所有?)字符變量轉換為因子,可以使用mutate_if
的dplyr
library(dplyr)
mutate_if(df, is.character, as.factor)
使用此方法,您只能對is.character
返回TRUE
列進行操作,因此您不必擔心列的位置或名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.