如何将带有矢量条目的数据框导出到 CSV 文件中?
How to export data frame with vector entries into CSV file?
我有一个数据框,其中包含一些条目作为列表。这是从 JSON 文件导入的,其中一个条目可能有多个标签。它使用 jsonlite
包和 flatten=TRUE
导入了 JSON 文件。我的标签列中的示例条目是:
list(tag = c("ethicaltheory", "gametheory"), raw_tag = c("ethical heory", "Game Theory"))
我过滤了 table 并想将其导出到 csv。当我尝试 write.csv
命令时,当它命中带有 list
:
的第一个条目时,我遇到了一个错误
"unimplemented type 'list' in 'EncodeElement'"
问题是我可以按原样导出这个文件吗,我是不是导入错了?
我可以将条目转换为字符串或其他东西,但我不确定如何为整个 table。
有趣的问题。我不知道 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
我有一个数据框,其中包含一些条目作为列表。这是从 JSON 文件导入的,其中一个条目可能有多个标签。它使用 jsonlite
包和 flatten=TRUE
导入了 JSON 文件。我的标签列中的示例条目是:
list(tag = c("ethicaltheory", "gametheory"), raw_tag = c("ethical heory", "Game Theory"))
我过滤了 table 并想将其导出到 csv。当我尝试 write.csv
命令时,当它命中带有 list
:
"unimplemented type 'list' in 'EncodeElement'"
问题是我可以按原样导出这个文件吗,我是不是导入错了?
我可以将条目转换为字符串或其他东西,但我不确定如何为整个 table。
有趣的问题。我不知道 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