21

Rのデータフレームに基づいて.csvファイルを書き込もうとしていますが、何らかの理由で次のエラーが発生し続けます:

Error in .External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol,  : 
  unimplemented type 'list' in 'EncodeElement

これは traceback() が与えるものです:

5: write.table(df, file = "df.csv", col.names = NA, 
       sep = ",", dec = ".", qmethod = "double")
4: eval(expr, envir, enclos)
3: eval(expr, p)
2: eval.parent(Call)
1: write.csv(df, file = "df.csv")

解決策はありますか?

4

3 に答える 3

31

R で直接データ フレームを強制することもできます。

my.df <- data.frame(lapply(old.df, as.character), stringsAsFactors=FALSE)

注意:これにより、データフレーム全体が指定したタイプに強制されます。たとえば、データフレームを数値に強制したい場合は、「as.characater」を「as.numeric」に置き換えます。

 my.df <- data.frame(lapply(old.df, as.numeric), stringsAsFactors=FALSE)
于 2014-08-20T21:51:24.350 に答える
20

列の 1 つはリスト型であるため、data.frame は 2 次元ではなくなり、2 次元の csv ファイルにエクスポートできません。

それでも結果の出力にリストを保存したい場合は、最初にリストを JSON に変換することができます。したがって、1つの列としてcsvに簡単にエクスポートできる「文字」タイプの列になります。

于 2013-06-25T07:21:13.687 に答える