gpt4 book ai didi

使用 group_by 时重新排序 NA 的位置

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

我想重新排序 NA 在列中的位置,在另一个分类变量的每个级别内。例如使用此数据框:

df <- data.frame(fact=c(1,1,1,2,2,2), id=rep(1:6), value=c(NA,44,23,NA,NA,76))

我想改变一个新列,如:
df$newvar <= c(44,23,NA,76,NA,NA)

我原以为以下会起作用,但它不会:
dfb <- df %>% group_by(fact) %>% mutate(newvar = df$value[order(is.na(df$value))])

关于我如何做到这一点的任何想法?

最佳答案

您应该删除 mutate 语句中的 df$ 部分,否则您指的是完整的列,而不是每组的列。所以这应该可以正常工作:

df %>% group_by(fact) %>% mutate(newvar = value[order(is.na(value))])

输出:
# A tibble: 6 x 4
# Groups: fact [2]
fact id value newvar
<dbl> <int> <dbl> <dbl>
1 1.00 1 NA 44.0
2 1.00 2 44.0 23.0
3 1.00 3 23.0 NA
4 2.00 4 NA 76.0
5 2.00 5 NA NA
6 2.00 6 76.0 NA

关于使用 group_by 时重新排序 NA 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48544563/

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