如何构造和添加到具有命名列的数据框?

时间:2015-05-17 19:57:02

标签: r dataframe

我无法弄清楚如何在不抛出错误的情况下做到这一点。我有一组我希望创建和添加的数据框的列名,如下所示:

x <- c("A", "B", "C")

所以,我走下循环,然后计算一个向量中的一些数值,比如说:

z <- c(1, 5, 7, 8, 34, 5)
每次循环时,

z都是相同的维度。

第一次通过(甚至在循环之外)我想通过执行以下操作来初始化数据框:

df$x[1] <- z

所以我的数据框看起来像:

   A
1  1
2  5
3  7
4  8
5  34
6  5

下一次循环我想要将另一列添加到df,其中列标题是x的第二个元素,以及一组新的z值。如果数据帧必须提前完全标注,我可以计算循环外的变量来执行此操作,例如M和N,但这些变量可能会从一次运行更改为下一次运行。

我似乎无法弄清楚如何做到这一点。建议非常感谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

 set.seed(1)
 #set the column names
 x <- c("A", "B", "C")
 #create the list that later we will convert to a data.frame
 df<-setNames(vector("list",length(x)),x)
 #loop to produce the various z
 for (i in 1:length(x))  {
      #do some stuff to evaluate z
      z<-sample(5)
      #assign to an element of df
      df[[i]]<-z
 }
 #coerce to a data.frame
 df<-as.data.frame(df)
 #  A B C
 #1 2 5 2
 #2 5 4 1
 #3 4 2 3
 #4 3 3 4
 #5 1 1 5