我正在尝试通过生成行并逐个附加它来在R中创建数据帧。我正在做以下
# create an empty data frame.
x <- data.frame ()
# Create 2 lists.
l1 <- list (a = 9, b = 2, c = 4)
l2 <- list (a = 7, b = 2, c = 3)
# Append and print.
x <- rbind (x, l1)
x
a b c
2 9 2 4
# append l2
x <- rbind (x, l2)
x
a b c
2 9 2 4
21 7 2 3
# Append again
x <- rbind (x, l2)
x
a b c
2 9 2 4
21 7 2 3
3 7 2 3
# Append again.
x <- rbind (x, l2)
x
a b c
2 9 2 4
21 7 2 3
3 7 2 3
4 7 2 3
我的问题是当我打印x时,每行开头打印的值的重要性是什么(即值2,21,3,4 ...)以及为什么这些值按原样出现,我希望那时有1,2,3,4 ......等等,以显示相应行的索引。
请帮忙。
答案 0 :(得分:2)
我认为您的问题是,您正尝试使用rbind
data.frame
list
rbind
。如果您将x <- rbind (x, as.data.frame(l1))
命令更改为:
data.table
你没有遇到问题。
如果您有许多列表,我可以建议library(data.table)
n = 100;
V=vector("list",n)
for (i in 1:n) {
V[[i]]<-list(a=runif(1),b=runif(1),c=runif(1));
}
V=rbindlist(V)
V
包非常方便快捷。一个例子如下:
{{1}}
感谢。
答案 1 :(得分:1)
如果避免初始化空数据框,则不会有奇怪的行名称。
x <- as.data.frame(l1)
x <- rbind (x, l1)
x <- rbind (x, l2)
x <- rbind (x, l2)
x
如果您想以更有效的方式绑定行,我建议您使用data.table包中的函数rbindlist。