Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用for循环向数据帧添加列_R - Fatal编程技术网

使用for循环向数据帧添加列

使用for循环向数据帧添加列,r,R,我是R的新手,这似乎不是一个困难的任务,但我似乎找不到我想要的答案。我试图使用for循环将多个向量添加到数据帧中。这就是我到目前为止所做的,它可以添加正确的列,但变量名不正确。我可以通过使用rename.vars来修复它们,但我想知道是否有不这样做的方法 for (i in 1:5) { if (i==1) { alldata<-data.frame(IA, rand1) } else { alldata<-data.frame(alldata, ra

我是R的新手,这似乎不是一个困难的任务,但我似乎找不到我想要的答案。我试图使用for循环将多个向量添加到数据帧中。这就是我到目前为止所做的,它可以添加正确的列,但变量名不正确。我可以通过使用rename.vars来修复它们,但我想知道是否有不这样做的方法

for (i in 1:5) {
    if (i==1) {
    alldata<-data.frame(IA, rand1) }
    else {
    alldata<-data.frame(alldata, rand[[i]]) }
}
for(1:5中的i){
如果(i==1){

alldata只需执行
cbind(IA,rand1,rand[2:5])

您可以使用
colnames
函数设置变量名。因此,您的代码如下所示:

newdat <- cbind(IA, rand1, rand[2:5])
colnames(newdat) <- c(colnames(IA), paste0("rand", 1:5))

newdat如果在循环中创建变量,可以在循环过程中指定名称

alldata <- data.frame(IA)
for (i in 1:5) {alldata[, paste0('rand', i)] <- rand[[i]]}

alldata我试过了,变量名仍然不是我想要的。例如,rand2名称是“c(0.769488322349677,1.02808554936668,1.07762946633772,1.1976398531684”,这是变量的前4个值。不是rand2,
rand[2]
。为什么您希望名称为
rand2
?对象名称为
rand
,您要求在
rand
中输入第二个元素。您是否命名了第二个元素?