[英]Converting a list to one row data.frame
我有一个这样的列表:
arg0 <- list(code = "a", n = rep(10, 3))
列表中的对象数是可变的。 列表的对象是向量 - 只有一维对象。
我想创建一个过程将列表转换为一行data.frame,如下所示:
> data.frame(code = "a", n.1 = 10, n.2 = 10, n.3 = 10)
code n.1 n.2 n.3
1 a 10 10 10
我目前有这个解决方案:
a <- stack(arg0)
b <- data.frame(t(a[,1]))
names(b) <- a[,2]
b <- data.frame(b)
其中b
几乎是我想要达到的结果:
> b
code n n.1 n.2
1 a 10 10 10
两个问题:
c(n.1, n.2, n.3)
这样的重复字母的编号吗? 这是一种方式:
data.frame(t(unlist(arg0)))
# code n1 n2 n3
# 1 a 10 10 10
如果要保留列表对象的不同数据类型,可以使用以下命令:
data.frame(lapply(arg0, function(x) t(data.frame(x))))
输出:
code n.1 n.2 n.3
x a 10 10 10
第二列到第四列中的值仍为数字。
您可以在转置的未列出数据上使用write.table
和read.table
的组合。 我使用剪贴板作为保存表格的中间步骤。
write.table(t(unlist(arg0)),"clipboard")
read.table("clipboard")
code n1 n2 n3
1 a 10 10 10
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.