首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为某些列名添加前缀

为某些列名添加前缀
EN

Stack Overflow用户
提问于 2019-10-16 17:05:02
回答 3查看 158关注 0票数 0

我有一个与此非常相似的问题:Adding a prefix to column names。我想给列名加上一个前缀--唯一的区别是,我不想给我拥有的每一列都加上前缀。这里是与上面提到的问题中相同的最小可重现示例:

代码语言:javascript
复制
m2 <- cbind(1,1:4)
colnames(m2) <- c("x","Y")

结果是:

代码语言:javascript
复制
     x Y
[1,] 1 1
[2,] 1 2
[3,] 1 3
[4,] 1 4

向两列添加前缀"Sub“的代码如下所示(由用户A5C1D2H2I1M1N2O1R2T1建议):

代码语言:javascript
复制
colnames(m2) <- paste("Sub", colnames(m2), sep = "_")

结果是:

代码语言:javascript
复制
     Sub_x Sub_Y
[1,]     1     1
[2,]     1     2
[3,]     1     3
[4,]     1     4

如何只在第一列添加前缀"Sub“?我尝试了以下几种方法:

代码语言:javascript
复制
colnames(m2[,1]) <- paste("Sub", colnames(m2[,1]), sep = "_")

代码的结果:没有警告,没有错误,但也没有前缀。有什么建议吗?除了base r之外,任何使用dplyr的建议也很受欢迎。如果您需要任何进一步的信息,请告诉我。提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-16 17:07:46

试试这个:

代码语言:javascript
复制
colnames(m2)[1] <- paste0("Sub", "_", colnames(m2)[1])
# or if you prefer paste
#colnames(m2)[1] <- paste("Sub", colnames(m2)[1], sep = "_")
票数 1
EN

Stack Overflow用户

发布于 2019-10-16 17:11:16

使用dplyr,您可以执行以下操作:

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2019-10-16 17:15:30

此外,paste()还接受向量,因此您可以这样做:

代码语言:javascript
复制
colnames(m2) <- paste0(c("Sub_", ""), colnames(m2))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58409639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档