需要帮助连接列名称

时间:2018-05-28 02:21:41

标签: r concatenation columnname

我正在生成5种不同的预测,并将这些预测添加到现有数据框中。我的代码是:

For j in i{
…
actual.predicted <- data.frame(test_data, predicted)
}

我试图在循环中将单词连接在一起以创建新的列名。具体来说,我有一个名为“预测”的列,我在循环的每次迭代中生成预测。因此,在第一次迭代中,我希望新列名称为“predict.1”,对于第二次迭代,新列名称应为“predict.2”,依此类推。

任何想法都会非常感激。

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