[英]How to use mutate_at() in R to change columns?
I want to replace all the instances of ""
in the columns: VEHICLE.TYPE.CODE
and CONTRIBUTING.FACTOR.VEHICLE
.我想替换列中""
的所有实例: VEHICLE.TYPE.CODE
和CONTRIBUTING.FACTOR.VEHICLE
。
My code is:我的代码是:
df %>%
select(VEHICLE.TYPE.CODE.1, VEHICLE.TYPE.CODE.2,
VEHICLE.TYPE.CODE.3, VEHICLE.TYPE.CODE.4, VEHICLE.TYPE.CODE.5,
CONTRIBUTING.FACTOR.VEHICLE.1, CONTRIBUTING.FACTOR.VEHICLE.2,
CONTRIBUTING.FACTOR.VEHICLE.3, CONTRIBUTING.FACTOR.VEHICLE.4,
CONTRIBUTING.FACTOR.VEHICLE.5) %>%
mutate_at(vars(contains(" ")), funs("NONE"))
However, this doesn't work.但是,这不起作用。 The ""
are not replaced by "NONE"
. ""
不会被替换为"NONE"
。 Why does my code not work, and how can I fix my code to get "NONE"
in my columns?为什么我的代码不起作用,如何修复我的代码以在我的列中获得"NONE"
?
Thanks in advance!提前致谢!
We can use matches
to match column names with a pattern and use replace
to change values.我们可以使用matches
将列名与模式匹配,并使用replace
来更改值。
library(dplyr)
df %>% mutate_at(vars(matches('VEHICLE.TYPE.CODE|CONTRIBUTING.FACTOR.VEHICLE')),
~replace(., . == "", "NONE"))
Note that mutate_at
is going to be replaced by across
in future release of dplyr
in which case syntax would change to:请注意, across
mutate_at
的未来版本中, dplyr
将被替换为 cross,在这种情况下,语法将更改为:
df %>%
mutate(across(matches('VEHICLE.TYPE.CODE|CONTRIBUTING.FACTOR.VEHICLE')),
~replace(., . == "", "NONE"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.