我有一个数据框,其中有一些条目作为列表。这是从 JSON 文件导入的,其中条目可能有多个标记。它使用带有flatten=TRUE
的包导入jsonlite
JSON 文件。我的标签列中的示例条目是:
list(tag = c("ethicaltheory", "gametheory"), raw_tag = c("ethical heory", "Game Theory"))
我过滤了表格,想将其导出为 csv。当我尝试write.csv
命令时,当它命中带有list
的第一个条目时,我遇到了错误:
"编码元素"中未实现的类型'列表'"
问题是我可以按原样导出此文件吗,我在导入时是否犯了错误?
我可以将条目转换为字符串或其他东西,但我不确定如何为整个表执行此操作。
有趣的问题。我不知道data.frame
可以存储list
.该算法采用可变长度list
存储在一行data.frame
中。然后它找到最大长度,创建具有适当尺寸的matrix
,然后保存文件。
x <- list(tag = letters[1:2], raw_tag = letters[1:3])
y <- list(tag = letters[1:2], raw_tag = letters[1:2])
z <- list(tag = letters[1:3], raw_tag = letters[1:4])
df <- data.frame(clmn = I(list(x, y, z)))
r <- apply(df, 1, unlist)
lm <- max(unlist(lapply(r, length)))
df <- data.frame(
matrix(
rep(0, (lm * nrow(df))),
ncol = lm
)
)
)
vals.v <- unlist(lapply(1:nrow(df), function(i) {
v <- unlist(r[i])
l <- length(v)
c(v, rep(0, lm - l))
}))
fin.res <- t(matrix(vals.v, ncol = nrow(df)))
# write.csv(fin.res, "res2.csv") # uncomment to save CSV file