【发布时间】:2017-10-16 01:58:20
【问题描述】:
假设我有一个名为 DF 的数据框:
options(stringsAsFactors = F)
letters <- list("A", "B", "C", "D")
numbers <- list(list(1,2), 1, 1, 2)
score <- list(.44, .54, .21, .102)
DF <- data.frame(cbind(letters, numbers, score))
请注意,数据框中的所有列都属于“列表”类。
另外,看看结构:DF$numbers[1]也是一个列表
我正在尝试 UNLIST 每一列。
DF$letters <- unlist(DF$letters)
DF$score <- unlist(DF$score)
DF$numbers <- unlist(DF$numbers)
但是,因为 DF$numbers[1] 也是一个列表,所以我抛出了这个错误:
Error in `$<-.data.frame`(`*tmp*`, numbers, value = c(1, 2, 1, 1, 2)) :
replacement has 5 rows, data has 4
有没有一种方法可以取消列出整列,并将像 DF$numbers[1] 这样的值单元格保留为像 c(1,2) 或 1,2 这样的字符向量?
理想情况下,我希望 DF 看起来像这样,其中 number 列中的各个值仍然是 int 类型:
letters numbers score
A 1,2 .44
B 1 .54
C 1 .21
D 2 .102
目标是将数据框写入 csv 文件。
【问题讨论】: