-1
我需要先按行拆分數據幀,現在我有65個數據幀的巨大列表。爲列表中的每個數據幀轉換1列
df_list = split(df, list(df$group))
new_col_name = c("A", "B","group")
df_list = lapply(df_list, setNames, nm=new_col_name)
df_list = lapply(df_list, function(x) x[-1,])
我想將列A(跨列表中的所有數據框)轉換爲因子而不是數字。
>head(df_list)
$`0`
A B count
.3375E+03 .5295E+00 0
.3380E+03 .4412E+00 0
.3385E+03 .0123E+00 0
$`1`
A B count
.3370E+03 .4939E+00 1
.3375E+03 .5295E+00 1
.3380E+03 .5679E+00 1
$`2
A B count
.3370E+03 .4934E+00 2
.3375E+03 .5286E+00 2
.3380E+03 .5673E+00 2
等等
下面是一些再生的數據(我已經轉換所述第一變量的一個因素爲簡單起見)。
test = data.frame(A = c(".3375E+03", ".3380E+03", ".3385E+03"),
B = c(.5295E+00 , .4412E+00, .0123E+00),
C = c(0,0,0))
我曾嘗試以下:
for (i in df_list){
i$A = as.numeric(as.character(i$A))
}
但不知何故,這實際上並沒有得到分配給df_list:
> str(df_list[[1]])
'data.frame': 549 obs. of 3 variables:
$ A : Factor w/ 551 levels ".3370E+03",".3375E+03",..: 2 3 4 5 6 7 8 9 10 11 ...
有可能是一種方式與apply()
或做sapply()
但我無法弄清楚。
檢查:https://stackoverflow.com/questions/23369333/convert-factors-in-2-data-frames-of-a-list-into -數字 –