将R中的数据帧输出到.csv

rid*_*994 20 csv r dataframe output

所以我正在尝试根据R中的数据帧编写.csv文件,但由于某种原因,我不断收到以下错误:

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

这是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")
Run Code Online (Sandbox Code Playgroud)

有解决方案吗

Sum*_*Ela 31

您也可以直接在R中强制数据帧:

my.df <- data.frame(lapply(old.df, as.character), stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

CAVEAT:这会将您的整个数据框强制转换为您指定的任何类型.例如,如果您想将数据框强制转换为数字,则应将'as.characater'替换为'as.numeric':

 my.df <- data.frame(lapply(old.df, as.numeric), stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

  • 这也适用于我,但需要注意的是`as.character`将所有内容更改为字符列,弄乱了我的小数位数字.如果您正在使用数字data.frame,请尝试`my.df < - data.frame(lapply(old.df,as.numeric),stringsAsFactors = FALSE) (4认同)

Mar*_*ing 20

您的一个列是类型列表,因此data.frame不再是二维的,不能导出到二维csv文件.

如果您仍希望将列表存储在结果输出中,则可以先将其转换为JSON.因此它成为"字符"类型的列,可以很容易地作为一列导出到csv.