首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dplyr还是Magrittr - tolower?

Dplyr还是Magrittr - tolower?
EN

Stack Overflow用户
提问于 2015-03-25 18:47:21
回答 5查看 16.6K关注 0票数 31

是否可以在dplyr或magrittr链中将所有列名设置为上或下?

在下面的示例中,我加载数据,然后使用magrittr管道将其链接到dplyr突变。在第4行中,我使用了tolower函数,但这是为了不同的目的:创建一个带有小写观察的新变量。

代码语言:javascript
复制
mydata <- read.csv('myfile.csv') %>%
    mutate(Year = mdy_hms(DATE),
           Reference = (REFNUM),
           Event = tolower(EVENT)

我显然是在寻找类似colnames = tolower的东西,但我知道这是行不通的/不存在的。

我注意到了dplyr rename函数,但这并没有多大帮助。

在magrittr中,colname选项是:

set_colnames而不是基R的colnames<-

set_names而不是基R的names<-

我试过很多次的排列,但是没有骰子。

显然,这在基数r中非常简单。

代码语言:javascript
复制
names(mydata) <- tolower(names(mydata))

然而,在进入一个优雅的dplyr/magrittr代码链之前,您必须作为一条笨重的衬垫来完成这一点,这似乎与德普利/磁铁矿的思想不一致。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-03-25 20:02:03

如果我正确理解你的问题,使用magrittr的“复合赋值管道运算符”%<>%可能是一个更简洁的选择。

代码语言:javascript
复制
library("magrittr")
names(iris) %<>% tolower

?`%<>%` # for more
票数 22
EN

Stack Overflow用户

发布于 2017-07-03 10:09:59

对于{dplyr},我们可以:

代码语言:javascript
复制
mydata %>% rename_all(tolower)

代码语言:javascript
复制
mydata %>% rename(across(everything(), tolower))
票数 66
EN

Stack Overflow用户

发布于 2015-03-25 18:48:52

代码语言:javascript
复制
iris %>% setNames(tolower(names(.))) %>% head

或在非替换形式中等效地使用替换函数:

代码语言:javascript
复制
iris %>% `names<-`(tolower(names(.))) %>% head
iris %>% `colnames<-`(tolower(names(.))) %>% head  # if you really want to use `colnames<-`
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29264028

复制
相关文章

相似问题

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