不知道为什么第一行有错误,但第二行工作?我的理解是在公式中使用名称(.)告诉R在管道操作符之前使用数据。它似乎对.cols参数有效,但对公式无效。
iris%>%rename_with(~gsub("Petal","_",names(.)),all_of(names(.))) iris%>%rename_with(~~gsub("Petal","_",names(iris)),all_of(names(.)))
vcirk6k61#
rename_with将一个函数应用于传递的 Dataframe 的 names。该函数应该是一个在给定名称向量的情况下返回更改后的名称的函数,因此语法要比您尝试的语法简单得多:
rename_with
iris %>% rename_with(~ gsub("Petal", "_", .x)) #> Sepal.Length Sepal.Width _.Length _.Width Species #> 1 5.1 3.5 1.4 0.2 setosa #> 2 4.9 3.0 1.4 0.2 setosa #> 3 4.7 3.2 1.3 0.2 setosa #> 4 4.6 3.1 1.5 0.2 setosa #> 5 5.0 3.6 1.4 0.2 setosa #> 6 5.4 3.9 1.7 0.4 setosa #... etc
1条答案
按热度按时间vcirk6k61#
rename_with
将一个函数应用于传递的 Dataframe 的 names。该函数应该是一个在给定名称向量的情况下返回更改后的名称的函数,因此语法要比您尝试的语法简单得多: