我有一个与此问题非常相似的问题:Adding a prefix to column names。 我想在列名上添加前缀-唯一的区别是,我不想在我拥有的每列上添加前缀。这里是与上述问题相同的最小可重现示例:
m2 <- cbind(1,1:4)
colnames(m2) <- c("x","Y")
结果:
x Y
[1,] 1 1
[2,] 1 2
[3,] 1 3
[4,] 1 4
为两列添加前缀“ Sub”的代码如下所示(如用户A5C1D2H2I1M1N1O2R1T1T1所建议):
colnames(m2) <- paste("Sub", colnames(m2), sep = "_")
结果:
Sub_x Sub_Y
[1,] 1 1
[2,] 1 2
[3,] 1 3
[4,] 1 4
如何仅在第一列中添加前缀“ Sub”?我尝试了以下方法:
colnames(m2[,1]) <- paste("Sub", colnames(m2[,1]), sep = "_")
代码结果:无警告,没有错误,但也没有前缀。有什么建议么?除了基础之外,任何使用dplyr的建议也将受到赞赏。如果您需要任何进一步的信息,请告诉我。预先感谢。
答案 0 :(得分:1)
尝试一下:
colnames(m2)[1] <- paste0("Sub", "_", colnames(m2)[1])
# or if you prefer paste
#colnames(m2)[1] <- paste("Sub", colnames(m2)[1], sep = "_")
答案 1 :(得分:1)
使用dplyr
,您可以执行以下操作:
m2 %>%
as.data.frame() %>%
rename_at(1, ~ paste("Sub", ., sep = "_"))
Sub_x Y
1 1 1
2 1 2
3 1 3
4 1 4
答案 2 :(得分:0)
另外paste()
接受向量,因此您可以这样做:
colnames(m2) <- paste0(c("Sub_", ""), colnames(m2))