-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
は、ここではいくつかの再現性のあるデータだ(私は簡単にするための要因に最初の変数に変換しました)。
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()
かでそれを行うための方法は、おそらくあり
test = data.frame(A = c(".3375E+03", ".3380E+03", ".3385E+03"),
B = c(.5295E+00 , .4412E+00, .0123E+00),
C = c(0,0,0))
は、私は、次の試してみましたsapply()
しかし、私はそれを把握することはできません。
チェックこの:https://stackoverflow.com/questions/23369333/convert-factors-in-2-data-frames-of-a-list-into - 数値 –