我无法弄清楚如何在不抛出错误的情况下做到这一点。我有一组我希望创建和添加的数据框的列名,如下所示:
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,但这些变量可能会从一次运行更改为下一次运行。
我似乎无法弄清楚如何做到这一点。建议非常感谢。
答案 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