在R中重复colnames

在R中重复colnames,r,R,我想知道如何重复一组列名。有时我会有1组列要命名,有时我会有4组列要命名。例如: 1组列名: r a 2组列名: r a r a 我已尝试使用此for循环: for(cnt in 1:numSetCol){ colnames(data[,cnt]) <- "r" colnames(data[,cnt+1]) <- "a" cnt <- cnt + 2 } for(1中的cnt:numSetCol){ coln

我想知道如何重复一组列名。有时我会有1组列要命名,有时我会有4组列要命名。例如:

1组列名:

 r    a  
2组列名:

r    a     r    a 
我已尝试使用此for循环:

 for(cnt in 1:numSetCol){
    colnames(data[,cnt]) <- "r"
    colnames(data[,cnt+1]) <- "a"
    cnt <- cnt + 2 

}
for(1中的cnt:numSetCol){

colnames(data[,cnt])
mydata您应该认真对待@vaettchen的观点;如果这样做,您将无法通过列名访问变量。我建议您在每个名称中添加一个数字,以便更好地索引变量。可以这样做:

> dframe   <- as.data.frame(matrix(rnorm(60), ncol=6))
> cletters <- rep(c("r","a"), times=3)
> cindexes <- rep(c(1,2,3),   each=2)
> cnames   <- paste(cletters, cindexes, sep="")
> cnames
[1] "r1" "a1" "r2" "a2" "r3" "a3"
> colnames(dframe) <- cnames
> colnames(dframe)
[1] "r1" "a1" "r2" "a2" "r3" "a3"

然而,在这里使用循环并不是最好的策略。我建议您也遵循@Henrik的建议,阅读R手册的介绍,开始学习更多关于R的基础知识。

colnames(data)这没有意义-您不能再通过名称来称呼colnames了(
x$r
仅处理名为
r
的第一列)。但无论如何,请尝试
以获取(cnt in 1:(numSetCol-2)){…}
请花一些时间阅读第一个文档。
> dframe   <- as.data.frame(matrix(rnorm(60), ncol=6))
> cletters <- rep(c("r","a"), times=3)
> cindexes <- rep(c(1,2,3),   each=2)
> cnames   <- paste(cletters, cindexes, sep="")
> cnames
[1] "r1" "a1" "r2" "a2" "r3" "a3"
> colnames(dframe) <- cnames
> colnames(dframe)
[1] "r1" "a1" "r2" "a2" "r3" "a3"
> numSetCol <- 6
> for(cnt in 1:numSetCol){
+   print(cnt)
+   cnt <- cnt + 2 
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6