gpt4 book ai didi

r - 使用 dplyr 应用结果

转载 作者:行者123 更新时间:2023-12-04 01:39:33 24 4
gpt4 key购买 nike

在下面的示例中,我试图通过 id 确定哪个 value 最接近每个 vals_int。我可以使用 sapply() 解决这个问题,类似于下面的问题,但我想知道 sapply() 部分是否可以用 中的另一个函数来完成dplyr

我真正感兴趣的是 sapply 方法和输出是否可以使用 dplyr 包中的某些函数进行复制。我曾认为 do() 可能会起作用,但正在努力确定如何起作用。

library(tidyverse)

df <- data_frame(
id = rep(1:10, 10) %>%
sort,
visit = rep(1:10, 10),
value = rnorm(100)
)

vals_int <- c(1, 2, 3)

tmp <- sapply(vals_int,
function(val_i) abs(df$value - val_i))

最佳答案

是的,您可以使用 dplyr 中的 rowwise()do() 函数对每一行执行相同的操作,如下所示:

df %>% rowwise %>% do(diffs = abs(.$value - vals_int))

这将在一个新的 tibble 中创建一个名为 diffs 的列,它是一个长度为 3 的向量列表。如果您将 do() 返回的输出强制为一个数据框,它将改为创建一个包含三列的小标题,每个列对应一个减去的值。

df %>% rowwise %>% do(as.data.frame(t(abs(.$value - vals_int))))

关于r - 使用 dplyr 应用结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47820130/

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