gpt4 book ai didi

r - 在整行上按行使用 purrr 而不是 apply()

转载 作者:行者123 更新时间:2023-12-04 18:18:47 25 4
gpt4 key购买 nike

我要换 apply() (及其衍生物)带有 purrr功能。

我有一个像这样的 data.frame:

> df
V1 V2 V3
1 NA 2 3
2 2 NA 3
3 3 3 NA

我想按行应用两个函数: min(x, na.rm = T)which.min(x)并将结果作为数据帧返回。

如果我知道有多少列我可以做例如这个:
pmap_dfr(df, function(V1, V2, V3) {data.frame(min = pmin(V1, V2, V3, na.rm = T),
where = which.min(c(V1, V2, V3)))})

min where
1 2 2
2 2 1
3 3 1

我该如何制作 pmap()或任何其他 purrr函数将整行作为参数,就像 apply()做?
func <- function(x) {data.frame(min = min(x, na.rm = T), where = which.min(x))}

> Reduce(rbind, apply(df,1, func))
min where
V2 2 2
V1 2 1
V11 3 1



我可能只是错过了一个功能或一些技巧。谢谢你的帮助。

最佳答案

如果您使用省略号,您的解决方案将适用于所有列。

pmap_dfr(df, ~data.frame(min = min(..., na.rm = TRUE), where = which.min(c(...)))) 

min where
1 2 2
2 2 1
3 3 1

关于r - 在整行上按行使用 purrr 而不是 apply(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56074035/

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