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

时间:2015-07-09 13:43:58

标签: 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

并且您希望将前缀“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 = "")

1 个答案:

答案 0 :(得分:5)

尝试

colnames(df)[2:4] <- paste("d", colnames(df[,c(2:4)]), sep = "")

在首先对df进行子集化时,您最终不会编辑df本身的列名称 - 而是编辑此临时&#39;的列名称。你正在玩的子集。我确定其他人可以更专业地回答这个问题。