【问题标题】:Need help concatenating column names需要帮助连接列名
【发布时间】:2018-11-06 13:45:37
【问题描述】:

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

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

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

任何想法将不胜感激。

【问题讨论】:

    标签: r concatenation columnname


    【解决方案1】:

    您甚至可能不需要在此处使用循环,但假设您这样做了,这里可能会很好用的一种模式是使用列表:

    results <- list()
    for j in i {
        # do something involving j
        name <- paste0("predicted.", j)
        results[[name]] <- data.frame(test_data, predicted)
    }
    

    【讨论】:

    • 感谢您的见解。这与我的想法相去甚远!
    • @KevinEDow 好吧,您向我们展示了 3 行代码,但没有数据,那么您期待什么?
    • 该代码与通过连接 j 的值来动态更改列名并不真正相关。您对 name
    【解决方案2】:

    一种选择是在分配新列后设置名称

    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
    

    【讨论】:

    • 哇...你在 1 行中做了我刚刚在 4 中所做的事情。我对我从这个社区学到的东西感到非常谦卑。我现在看到我有很多东西要学。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2015-10-01
    • 1970-01-01
    相关资源
    最近更新 更多