首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用第二个dataframe重命名存在于dataframe中的R中的列

使用第二个dataframe重命名存在于dataframe中的R中的列
EN

Stack Overflow用户
提问于 2018-12-09 01:20:04
回答 1查看 45关注 0票数 0

让我先创建一个例子,然后解释这个问题:

代码语言:javascript
复制
old_names <- c("FG%", "Dist.", "2P", "0-3", "3-10", "10-16")
new_names <- c("FG%", "Dist", "2P_Freq", "0_3_Freq", "3_10_Freq", "10_16_Freq")

dput(mydf)
structure(list(`FG%` = c(0.451, 0.454, 0.444, 0.444, 0.442), 
`2P` = c(0.691, 0.607, 0.629, 0.744, 0.665), `0-3` = c(0.331, 
0.296, 0.309, 0.28, 0.282), `10-16` = c(0.092, 0.071, 0.077, 
0.117, 0.099)), row.names = c(NA, 5L), class = "data.frame")

mydf
    FG%    2P   0-3 10-16
1 0.451 0.691 0.331 0.092
2 0.454 0.607 0.296 0.071
3 0.444 0.629 0.309 0.077
4 0.444 0.744 0.280 0.117
5 0.442 0.665 0.282 0.099

我有一个dataframe mydf,它有不同数量的列。我知道当前列名称old_names的全部可能集合,当它们出现在dataframe中时,我想用new_names中相同索引的值替换它们。在上面的示例中,有6列中的4列,我需要将它们重命名为new_names值。

使用dplyr的一个或多个重命名、rename_at、rename_if、rename_all的解决方案特别有用,因为我试图尽可能多地使用dplyr来处理这种类型的数据管理器。我试过几次,但都没有成功。

在这方面的任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-09 01:33:18

这样就行了

代码语言:javascript
复制
names(mydf) = new_names[old_names %in% names(mydf)]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53688585

复制
相关文章

相似问题

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