r - 导出 R 展开表
问题描述
我是 R 新手,但在抓取数据(gwlevel)然后使用“扩展函数”放入扩展表(gwlevel_spread)时取得了一些初步成功。
我的问题是我可以轻松导出“gwlevel”表,如下:
write.table(gwlevel, file = "c:/BOB/r/export/zz_jnk.csv")
但是,当我尝试导出“gwlevel_spread”文件时,我不断收到错误消息,如下所示:
write.table(gwlevel_spread,"c:/BOB/r/export/zz_jnk.csv",sep=",") write.table 中的错误(gwlevel_spread,"c:/BOB/r/export/zz_jnk.csv", sep = ",") : 'EncodeElement' 中未实现的类型'list'
(1) 谁能告诉我原因?(2)或者有没有更好的方法我应该这样做?
解决方案
这可能意味着您的数据中有一些无法导出到 csv 的列表列。您可以将列表列折叠为一个逗号分隔的字符串,然后再将其写入 csv。
如果调用列表列,col
您可以执行以下操作:
gwlevel_spread$col <- sapply(gwlevel_spread$col, toString)
如果您不知道哪一列是列表或数据中有许多列属于列表类,您可以使用条件lapply
gwlevel_spread[] <- lapply(gwlevel_spread, function(x)
if('list' %in% class(x)) sapply(x, toString) else x)
然后使用write.table
or写入 csv write.csv
:
write.table(gwlevel_spread, file = "c:/BOB/r/export/zz_jnk.csv")
推荐阅读
- c++ - 在构造函数中移动/交换中间向量后,我应该如何管理它?
- angularjs - 角度 ngFor 警告 - 只允许使用数组和可迭代对象
- c++ - CUDA 错误:“double”类型的参数与“double *”类型的参数不兼容
- excel - 列中的单元格只需包含 3 个数字或字符
- azure - 在 Azure 机器学习服务 Nvidia Compute 中导入 sentence_transformers 时出现分段错误错误
- python - Pandas - 如果在 (col B) 中观察到 (col A) 列中的值,则使用 (col C) 中的值创建一列 (col D)
- javascript - 如果函数返回非空,则添加键:值对
- python - ctypes.ArgumentError:参数 3:
: 调用 Python 对象时超出最大递归深度 - javascript - Mongoose/mongoDB:将返回的文档限制在单个文档位置附近
- ios - 从配对的 Apple Watch 唤醒 iOS 应用