簡體   English   中英

將多個時間序列列強制為大數據框中的因子

[英]Coercing multiple time-series columns to factors in large dataframe

我想知道是否存在將字符變量轉換為因數的“簡便/快捷”方法。

我知道,可以用列名創建一個向量,然后使用lapply 但是,我正在處理具有200多個變量的大型數據框,因此最好不必在向量中寫入200多個名稱。

我還知道,我可以使用lapplytype.convertsapply來強制整個數據幀,但是由於我正在使用時間序列數據,其中一些是分類的,有些是數字的,因此我對此也不感興趣。

有什么辦法可以使用列號嗎? [ ,2:200] 我嘗試了以下方法,但是沒有任何運氣:

df[ ,2:30] <- lapply(df[ ,2:30], type.convert)
sapply(df, factor)

使用上面的解決方案,我仍然需要做多個,但是比寫所有變量名還要快。

我也感覺到循環可能在這里可用,但是我不確定如何寫出它,甚至不確定這樣做是不是一種方法。

df[ ,2:30] <- lapply(df[ ,2:30], as.factor)

在撰寫本文時,您需要將(所有?)字符變量轉換為因子,可以使用mutate_ifdplyr

library(dplyr)
mutate_if(df, is.character, as.factor)

使用此方法,您只能對is.character返回TRUE列進行操作,因此您不必擔心列的位置或名稱。

暫無
暫無

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

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