【问题标题】:Cbind a dataframe and output using paste to create labelsCbind 数据框并使用粘贴输出以创建标签
【发布时间】:2021-02-11 19:17:45
【问题描述】:

我正在尝试 cbind 一个数据集,同时还创建一个标签,但我无法让它工作。

我目前的尝试是:

 for (i in c(5,10,15)){
   or (g in c(1,2,3,4)){

     if (i==5) {data1 <- df[,6:10]}
     if (i==10) {data1 <- df[,6:15]}
     if (i==15) {data1 <- df[,6:20]}

     model1 <- Mclust(data=data1, G = g, modelNames = NULL, prior = NULL)
     df <- cbind(df, paste("g",g,"_",i,sep="")=model1$loglik)

   }
 }

正如您在最后一行代码中看到的,我正在尝试将现有数据集 (df) 与模型的输出 (model1$loglik) 与变量标签(例如 g1_5)绑定。当我正常运行粘贴函数时,它会返回一个字符串(例如,“g1_5”),但是当我在 cbind 中运行它时,它会将它作为代码返回,而不是它通常输出的字符串。

关于如何做到这一点的任何建议?如果有替代粘贴方法,或者有其他方法可以使标签适应创建它们的特定循环,请告诉我!

【问题讨论】:

    标签: r string label paste cbind


    【解决方案1】:

    lhs 上的 paste 无法创建名称。分配 ([[) 或使用 setNames 可能会更好。在第二行代码中,有一个错字。可能是for(g in c(1,2,3,4))

     ...
      df[[paste("g", g, "_", i, sep="")]] <- model1$loglik
    
      
      }
     }
    

    【讨论】:

      猜你喜欢
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多