是否可以在dplyr或magrittr链中将所有列名设置为upper或lower?
在下面的例子中,我加载了数据,然后使用magrittr管道将其链接到我的dplyr突变中,在第4行我使用了tolower
函数,但这是为了不同的目的:创建一个具有小写观察值的新变量。
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进制中非常简单。
names(mydata) <- tolower(names(mydata))
然而,它似乎与dplyr/magrittr的哲学不一致,在进入优雅的dplyr/magrittr代码链之前,你必须把它作为一个笨重的一行程序来做。
5条答案
按热度按时间v440hwme1#
使用
magrittr
的“复合赋值管道操作符”%<>%
可能是一个更简洁的选择,如果我对你的问题理解正确的话。prdp8dxp2#
casefold
在基数R中可用,并且可以在两个方向上转换,即可以根据需要通过使用标志upper
转换为全部大写或全部小写。此外,
colnames()
将只使用列标题进行大小写转换。jogvjijk3#
你也可以定义一个函数:
vs91vp4v4#
使用{dplyr},我们可以:
rename_all()
可用于相同的效果,但已被取代。zzwlnbp85#
或者等价地使用非替换形式的替换函数: