gpt4 book ai didi

r - 如何使用 dplyr 在行组之间进行划分?

转载 作者:行者123 更新时间:2023-12-04 03:06:59 24 4
gpt4 key购买 nike

我有这个数据框:

x <- data.frame(
name = rep(letters[1:4], each = 2),
condition = rep(c("A", "B"), times = 4),
value = c(2,10,4,20,8,40,20,100)
)
# name condition value
# 1 a A 2
# 2 a B 10
# 3 b A 4
# 4 b B 20
# 5 c A 8
# 6 c B 40
# 7 d A 20
# 8 d B 100

我想按名称分组并用 condition == "B" 除行的值与那些 condition == "A" ,得到这个:
data.frame(
name = letters[1:4],
value = c(5,5,5,5)
)
# name value
# 1 a 5
# 2 b 5
# 3 c 5
# 4 d 5

我知道这样的事情可以让我非常接近:
x$value[which(x$condition == "B")]/x$value[which(x$condition == "A")]

但我想知道是否有一种简单的方法可以用 dplyr 做到这一点(我的数据帧是一个玩具示例,我通过链接多个 group_bysummarise 调用来实现它)。

最佳答案

尝试:

x %>% 
group_by(name) %>%
summarise(value = value[condition == "B"] / value[condition == "A"])

这给出了:
#Source: local data frame [4 x 2]
#
# name value
# (fctr) (dbl)
#1 a 5
#2 b 5
#3 c 5
#4 d 5

关于r - 如何使用 dplyr 在行组之间进行划分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37447977/

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