将前缀添加到R中数据框的特定列

Luk*_*uke 1 r dataframe

假设您有一个如下数据框:

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
Run Code Online (Sandbox Code Playgroud)

并且您希望将前缀"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
Run Code Online (Sandbox Code Playgroud)

我尝试了以前回答的有关列标题前缀的问题的代码,但它似乎不起作用(即使逻辑对我有意义):

colnames(df[,c(2:4)]) <- paste("d", colnames(df[,c(2:4)]), sep = "")
Run Code Online (Sandbox Code Playgroud)

Akh*_*air 5

尝试

colnames(df)[2:4] <- paste("d", colnames(df[,c(2:4)]), sep = "")
Run Code Online (Sandbox Code Playgroud)

在进行df第一个子集化时,最终不会编辑df自身的列名- 而是编辑您正在玩的这个"临时"子集的列名.我相信其他人可以更专业地回答这个问题.