gpt4 book ai didi

r - `dplyr::group_by` 中有因子限制吗?

转载 作者:行者123 更新时间:2023-12-05 03:34:57 26 4
gpt4 key购买 nike

我正在努力研究如何使用变量的 lag 来计算组件的磨损。但是,我需要计算不同组的磨损,所以我使用 group_by 函数,但是这里有一个问题,当我使用需要分组的变量时,这会导致一列“NA”,但是当我通过将另一个具有较少因素的变量分组进行测试时,计算有效。

我使用的数据框有 4093902 行和 52 行。我需要分组以执行磨损计算的变量具有 90183 因子。另一个我测试过并且有效的有 11321 因素。

这是我使用的代码:

final_date = result_data %>%
arrange((time)) %>%
group_by(id_specific)%>%
mutate(wear = dplyr::lag(some_value, n = 1, default = NA) - some_value)

有谁知道分组有没有因子限制?或者关于如何执行此计算的任何其他提示?

最佳答案

NA 可以是 lag 的结果,它默认将第一个值返回为 NA 或来自其他列值,它可以也为 NA。因此,当我们执行 -(或任何算术)时,如果 lhs 或 rhs 中有任何 NA,它会返回 NA。一种选择是使用可以使用 na.rm = TRUE

的函数 ( rowSums)
library(dplyr)
final_date <- result_data %>%
arrange((time)) %>%
group_by(id_specific)%>%
mutate(some_value_new = dplyr::lag(some_value, n = 1,
default = NA)) %>%
ungroup %>%
mutate(wear = rowSums(cbind(some_value_new, -1 * some_value),
na.rm = TRUE), some_value_new = NULL)

注意:最好在执行 rowSums 之前先ungroup 以获得一些效率

关于r - `dplyr::group_by` 中有因子限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70009786/

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