gpt4 book ai didi

r - 使用 mutate_each 分配常量

转载 作者:行者123 更新时间:2023-12-02 09:25:08 28 4
gpt4 key购买 nike

我想将几列中每一列中的所有值设置为NA。通常,如果我想使用相同的算法修改多个列,我会使用 dplyr 中的 mutate_each 。从算法的角度来看,函数“x 映射到 null”似乎定义得很明确,所以我尝试这样做。但是,我收到错误:make_call(x$expr, args) 中的错误:未知输入

最小可重现示例:

sample <- data.frame(a = seq(1, 3), b = seq(5, 7))

sample %>% mutate(a = 1, b = 1) # Works fine
sample %>% mutate_each(funs(. - 1), a, b) # Works fine
sample %>% mutate_each(funs(1), a, b) # Blows up
sample %>% mutate_each(funs(NA), a, b) # Blows up

我还尝试显式定义一个函数,例如

mutate_each(funs(function(x) {NA}), Address, City, State, Zip)

这会导致不同的错误:错误:“a”列不支持类型 CLOSXP。这样做的正确方法是什么?

最佳答案

只是 1 不是函数名称(请参阅 mutate_each 的帮助页面)。你必须使用括号;这会起作用:

sample %>% mutate_each(funs({1}), a, b) 
#### a b
#### 1 1 1
#### 2 1 1
#### 3 1 1
sample %>% mutate_each(funs({NA}), a, b)
#### a b
#### 1 NA NA
#### 2 NA NA
#### 3 NA NA

这会将一切变为 NA 或 1。但是,如果你的 data.frame 中有 NA 并且你想保持它们原样怎么办?在这种情况下,@MichaelChirico(在评论中)建议的解决方案有效。

关于r - 使用 mutate_each 分配常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38485153/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com