我正在生成5种不同的预测,并将这些预测添加到现有数据框中。我的代码是:
For j in i{
…
actual.predicted <- data.frame(test_data, predicted)
}
我试图在循环中将单词连接在一起以创建新的列名。具体来说,我有一个名为“预测”的列,我在循环的每次迭代中生成预测。因此,在第一次迭代中,我希望新列名称为“predict.1”,对于第二次迭代,新列名称应为“predict.2”,依此类推。
任何想法都会非常感激。
答案 0 :(得分:0)
你甚至可能不需要在这里使用循环,但假设你这样做,一个可能在这里运作良好的模式是使用一个列表:
results <- list()
for j in i {
# do something involving j
name <- paste0("predicted.", j)
results[[name]] <- data.frame(test_data, predicted)
}
答案 1 :(得分:0)
一种选择是在分配新列后设置名称
actual.predicted <- data.frame(orig_col = sample(10))
for (j in 1:5){
new_col = sample(10)
actual.predicted <- cbind(actual.predicted, new_col)
names(actual.predicted)[length(actual.predicted)] <- paste0('predicted.',j)
}
actual.predicted
# orig_col predicted.1 predicted.2 predicted.3 predicted.4 predicted.5
# 1 1 4 4 9 1 5
# 2 10 2 3 7 5 9
# 3 8 6 5 4 2 3
# 4 5 9 9 10 7 7
# 5 2 1 10 8 3 10
# 6 9 7 6 6 8 6
# 7 7 8 7 2 4 2
# 8 3 3 1 1 6 8
# 9 6 10 2 3 9 4
# 10 4 5 8 5 10 1