gpt4 book ai didi

r - dplyr - 使用 rowwise() 应用自定义函数

转载 作者:行者123 更新时间:2023-12-05 00:59:39 25 4
gpt4 key购买 nike

我有一个数据框,想使用 dplyr 的逐行计算每行中零的数量。我做错了什么?

dt2 = data.frame(A = c(8, 6), B = c(0, 0), C = c(0, 5))
dt2
zerocount <- function(x) {sum(x == 0)}
library(dplyr)
dt2 %>% rowwise() %>% mutate(nr_of_0s = zerocount(A, B, C))

如果我将上面行中的 zerocount(A, B, C) 替换为例如 max(A, B, C),则上面的代码有效。怎么了?谢谢!

最佳答案

我认为您的问题不在于按行。你的函数的编写方式,它需要一个对象。尝试添加一个 c():

dt2 %>% rowwise() %>% mutate(nr_of_0s = zerocount(c(A, B, C)))

请注意,如果您不致力于使用自己的函数,则可以完全按行跳过,正如 Nettle 还指出的那样。 rowSums 已经以逐行方式处理数据帧,这就是它起作用的原因:

dt2 %>% mutate(nr_of_0s = rowSums(. == 0))

关于r - dplyr - 使用 rowwise() 应用自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52821137/

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