作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
Rename columns using `starts_with()` where new prefix is a string
(1 个回答)
rename column names dynamically in dplyr chain [duplicate]
(1 个回答)
2年前关闭。
我的数据如下所示:
#> Artist Album Year
#> 1 Beatles Sgt. Pepper's 1967
#> 2 Rolling Stones Sticky Fingers 1971
rename_if
仅以字母“A”开头的列作为前缀。所以我想要的输出是:
#> df1_Artist df1_Album Year
#> 1 Beatles Sgt. Pepper's 1967
#> 2 Rolling Stones Sticky Fingers 1971
starts_with
不正确?我应该试着把它分成两行,这样我才能更清楚地理解它吗?我还在学习 purrr 风格的函数,所以它对我来说并不总是很直观。
df1 %>% rename_if(starts_with("A"), .funs = ~ paste0(df1, .))
#> Error in df1 %>% rename_if(starts_with("A"), .funs = ~paste0(df1, .)): could not find function "%>%"
df1 <- data.frame(stringsAsFactors=FALSE,
Artist = c("Beatles", "Rolling Stones"),
Album = c("Sgt. Pepper's", "Sticky Fingers"),
Year = c(1967, 1971)
)
最佳答案
rename_if
期望一个逻辑向量作为谓词函数。 starts_with
根据名称选择变量。使用底座 startsWith
相反,它返回基于前缀的逻辑向量
library(dplyr)
df1 %>% rename_if(startsWith(names(.), "A"), ~paste0("df1_", .))
# df1_Artist df1_Album Year
#1 Beatles Sgt. Pepper's 1967
#2 Rolling Stones Sticky Fingers 1971
tidyverse
您也可以使用
str_detect
df1 %>% rename_if(stringr::str_detect(names(.), "^A"), ~paste0("df1_", .))
starts_with
我们可以使用
rename_at
其中有
vars
争论。
df1 %>% rename_at(vars(starts_with("A")), ~paste0("df1_", .))
关于rename_if() 和 starts_with() 为某些列添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56696131/
这个问题在这里已经有了答案: Rename columns using `starts_with()` where new prefix is a string (1 个回答) rename colu
我是一名优秀的程序员,十分优秀!