在R中的框架中追加和打印行

时间:2014-12-05 09:52:37

标签: r dataframe

我正在尝试通过生成行并逐个附加它来在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 ......等等,以显示相应行的索引。

请帮忙。

2 个答案:

答案 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。