将列表转换为 data.frame 后如何使格式干净优雅?
How to make format clean and elegant after casting list to data.frame?
我在列表中有一组向量。我想将我的列表投射到 data.frame 对象以进行快速操作。此站点中已有将列表投射到 data.frame 的解决方案。但是,我尝试了这个解决方案,效果很好,但格式有点大,格式不完美。谁能提出让铸造结果更干净/优雅的想法?如何才能有效地实现这一目标?
小例子
myList <- list(
a = c(1,2,3,4,5,6,7),
b = c(1,1,1,2,0,3,4),
c = c(1,2,4,4,5,0,6)
)
我使用了以下解决方案:
do.call(rbind, lapply(myList, data.frame, stringsAsFactors=FALSE))
我想要的输出
output <- data.frame(
a = c(1,2,3,4,5,6,7),
b = c(1,1,1,2,0,3,4),
c = c(1,2,4,4,5,0,6))
如何获得预期的输出?非常感谢
这应该有用吗?
output <- data.frame(myList)
colnames(output) <- c("a", "b", "c")
您应该使用 cbind 而不是 rbind 并设置数据框名称。
output <- do.call(cbind,lapply(myList,data.frame, stringsAsFactors=FALSE))
names(output) <- c("a","b","c")
如果我们需要转换成data.table
,直接在list
上使用setDT
library(data.table)
setDT(myList)[]
# a b c
#1: 1 1 1
#2: 2 1 2
#3: 3 1 4
#4: 4 2 4
#5: 5 0 5
#6: 6 3 0
#7: 7 4 6
我在列表中有一组向量。我想将我的列表投射到 data.frame 对象以进行快速操作。此站点中已有将列表投射到 data.frame 的解决方案。但是,我尝试了这个解决方案,效果很好,但格式有点大,格式不完美。谁能提出让铸造结果更干净/优雅的想法?如何才能有效地实现这一目标?
小例子
myList <- list(
a = c(1,2,3,4,5,6,7),
b = c(1,1,1,2,0,3,4),
c = c(1,2,4,4,5,0,6)
)
我使用了以下解决方案:
do.call(rbind, lapply(myList, data.frame, stringsAsFactors=FALSE))
我想要的输出
output <- data.frame(
a = c(1,2,3,4,5,6,7),
b = c(1,1,1,2,0,3,4),
c = c(1,2,4,4,5,0,6))
如何获得预期的输出?非常感谢
这应该有用吗?
output <- data.frame(myList)
colnames(output) <- c("a", "b", "c")
您应该使用 cbind 而不是 rbind 并设置数据框名称。
output <- do.call(cbind,lapply(myList,data.frame, stringsAsFactors=FALSE))
names(output) <- c("a","b","c")
如果我们需要转换成data.table
,直接在list
setDT
library(data.table)
setDT(myList)[]
# a b c
#1: 1 1 1
#2: 2 1 2
#3: 3 1 4
#4: 4 2 4
#5: 5 0 5
#6: 6 3 0
#7: 7 4 6