问题描述
我目前的尝试是:
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 中运行它时,它返回它作为代码,而不是它通常输出的字符串。
关于如何做到这一点的任何建议?如果有替代粘贴方法,或另一种方法可以使标签适应创建它们的特定循环,请告诉我!
解决方法
用于创建名称的 paste
上的 lhs
不起作用。分配 ([[
) 或使用 setNames
可能更好。在第二行代码中,有一个错字。可能是for(g in c(1,2,3,4))
...
df[[paste("g",g,"_",i,sep="")]] <- model1$loglik
}
}