我有一个与此非常相似的问题: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“的代码如下所示(由用户A5C1D2H2I1M1N2O1R2T1建议):
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 = "_")代码的结果:没有警告,没有错误,但也没有前缀。有什么建议吗?除了base r之外,任何使用dplyr的建议也很受欢迎。如果您需要任何进一步的信息,请告诉我。提前谢谢。
发布于 2019-10-16 17:07:46
试试这个:
colnames(m2)[1] <- paste0("Sub", "_", colnames(m2)[1])
# or if you prefer paste
#colnames(m2)[1] <- paste("Sub", colnames(m2)[1], sep = "_")发布于 2019-10-16 17:11:16
使用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发布于 2019-10-16 17:15:30
此外,paste()还接受向量,因此您可以这样做:
colnames(m2) <- paste0(c("Sub_", ""), colnames(m2))https://stackoverflow.com/questions/58409639
复制相似问题