r - 在 dplyr 中使用重命名并且列不存在时避免错误

标签 r dplyr

当在某些情况下要重命名的列不存在时,是否有一种巧妙的方法可以使用 dplyr 中的重命名函数?

例如,我希望以下内容不会导致错误

mtcars%>%rename(miles_per_gallon=mpg,missing_varible=foo)

(结果如下:错误:未知变量:foo。)

而是完成所有可能的重命名的数据框。

目前,我正在重命名之前明确检查特定列是否存在

谢谢

伊恩

最佳答案

也许不是设计者的意图,但您可以利用作用域动词 rename_alldplyr 函数 recode,它需要一个或更多键值对,例如 old_name = "New Name"

library(dplyr)

rename_all(iris, recode, Sepal.Length = "sepal_length", cyl = "cylinder")
#     sepal_length Sepal.Width Petal.Length Petal.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
# 7            4.6         3.4          1.4         0.3     setosa
# 8            5.0         3.4          1.5         0.2     setosa
# 9            4.4         2.9          1.4         0.2     setosa

关于r - 在 dplyr 中使用重命名并且列不存在时避免错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34275576/

相关文章:

R 迭代多维数组的索引

c++ - R 包中的 TMB c++ 代码和 CRAN 检查

r - 从数据框列创建列表

r - POSIXct 对象是 NA,但 is.na() 返回 FALSE

r - 计算一个数字(因子)在每组中出现的次数

r - ggplot2:并排的条形图,一个条堆叠,另一个没有

R featurePlot 返回 NULL

R 插入符包错误 - 至少一个类级别不是有效的 R 变量名称

r - 汇总按组返回长度

r - dplyr 用于逐行分位数