相关疑难解决方法(0)

在使用管道运算符时将dplyr重命名应用于所有列

我正在使用与下面的摘录对应的导入数据集:

set.seed(1)
dta <- data.frame("This is Column One" = runif(n = 10),
                     "Another amazing Column name" = runif(n = 10),
                     "!## This Columns is so special€€€" = runif(n = 10),
                    check.names = FALSE)
Run Code Online (Sandbox Code Playgroud)

我正在使用这些数据进行一些清理dplyr,我想将列名更改为语法正确的,并删除标点符号作为第二步.到目前为止我尝试了什么:

dta_cln <- dta %>% 
    rename(make.names(names(dta)))
Run Code Online (Sandbox Code Playgroud)

生成错误:

> dta_clean <- dta %>% 
+     rename(make.names(names(dta)))
Error: All arguments to rename must be named.
Run Code Online (Sandbox Code Playgroud)

期望的结果

我想要实现的目标可以在基础上完成:

names(dta) <- gsub("[[:punct:]]","",make.names(names(dta)))
Run Code Online (Sandbox Code Playgroud)

将返回:

> names(dta)
[1] "ThisisColumnOne"          "AnotheramazingColumnname" "XThisColumnsissospecial"
Run Code Online (Sandbox Code Playgroud)

我想达到相同的效果,但使用dyplr%>%.

syntax r dataframe dplyr

10
推荐指数
3
解决办法
9642
查看次数

标签 统计

dataframe ×1

dplyr ×1

r ×1

syntax ×1