我正在尝试这样的循环,我想动态地分配矩阵列的名称:
for(i in 1:nclass){
  P <- eXb / SeXb[mydata$chid]
  mydata <- cbind(mydata, paste("l_", i, sep="")=P)
}
任何想法(除了事后更改colnames)?
谢谢
Rom*_*rik 16
那这个呢?完成完整的矩阵后,您可以设置列名称.
> a <- matrix(1:9, 3)
> a
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> colnames(a) <- paste("col", 1:3, sep = "")
> a
     col1 col2 col3
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
如果您遇到不知道添加列的编号的问题,可以通过以下方式添加和命名:
df <- data.frame(matrix(1:9, 3, 3))
df
#>  X1 X2 X3
#>1  1  4  7
#>2  2  5  8
#>3  3  6  9
for(i in 1:5){
  df[, ncol(df) + 1] <- rnorm(nrow(df))
  names(df)[ncol(df)] <- paste0("mean_", i)
}
df
#>  X1 X2 X3     mean_1     mean_2    mean_3     mean_4     mean_5
#>1  1  4  7 -1.9983501 -1.6810377 1.2893602  0.5342042 -0.8354363
#>2  2  5  8  0.5966507 -0.5628999 1.2953387 -0.6661931 -0.4685747
#>3  3  6  9 -0.4268952 -2.0069306 0.6390317 -0.3505088  0.1230753
如果您尚未使用cbind,也可以这样做:
for(i in 1:nclass){
  P <- eXb / SeXb[mydata$chid]
  mydata[,paste0("l_",i)] <- P
}
Paste0只是贴上sep = ""它真的很方便。幸运的是,paste并且paste0可以使用而无需cbind创建新列如上所示。
| 归档时间: | 
 | 
| 查看次数: | 34303 次 | 
| 最近记录: |