假设你有一个这样的数据框:
df <- data.frame("1" = rep(NA,5), "2" = NA, "3" = NA, "4" = NA, "5" = NA, "6" = NA, "7" = NA, "8" = NA, "9" = NA, "10" = NA)
colnames(df) <- c(0:9)
> df
0 1 2 3 4 5 6 7 8 9
1 NA NA NA NA NA NA NA NA NA NA
2 NA NA NA NA NA NA NA NA NA NA
3 NA NA NA NA NA NA NA NA NA NA
4 NA NA NA NA NA NA NA NA NA NA
5 NA NA NA NA NA NA NA NA NA NA
并且您希望将前缀“d”添加到第2,3和4列的列标题中,以便新列标题为:
> df
0 d1 d2 d3 4 5 6 7 8 9
1 NA NA NA NA NA NA NA NA NA NA
2 NA NA NA NA NA NA NA NA NA NA
3 NA NA NA NA NA NA NA NA NA NA
4 NA NA NA NA NA NA NA NA NA NA
5 NA NA NA NA NA NA NA NA NA NA
我尝试了以前回答question关于列标题前缀的代码,但它似乎不起作用(即使逻辑对我有意义):
colnames(df[,c(2:4)]) <- paste("d", colnames(df[,c(2:4)]), sep = "")
答案 0 :(得分:5)
尝试
colnames(df)[2:4] <- paste("d", colnames(df[,c(2:4)]), sep = "")
在首先对df
进行子集化时,您最终不会编辑df
本身的列名称 - 而是编辑此临时&#39;的列名称。你正在玩的子集。我确定其他人可以更专业地回答这个问题。