我有一个数据框,其中一些条目作为列表。这是从JSON文件导入的,其中一个条目可能有多个标记。它使用带有jsonlite
的{{1}}包导入JSON文件。我的代码栏中的示例条目是:
flatten=TRUE
我过滤了表格并希望将其导出到csv。当我尝试list(tag = c("ethicaltheory", "gametheory"), raw_tag = c("ethical heory", "Game Theory"))
命令时,遇到write.csv
的第一个条目时遇到错误:
"未实现的类型'列表' in' EncodeElement'"
问题是我可以按原样导出此文件,导入时是否出错?
我可以将条目转换为字符串或其他内容,但我不确定如何为整个表格执行此操作。
答案 0 :(得分:0)
有趣的问题。我不知道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