gpt4 book ai didi

r - 将计数表转换为观察的分解表

转载 作者:行者123 更新时间:2023-12-04 09:34:21 26 4
gpt4 key购买 nike

我有成功和试验计数表形式的数据,但为了建模,我需要将这些数据放在分解的试验级表中。
我如何从中获得:

dplyr::tibble(
user_id = c(1,2),
success = c(3,4),
trials = c(9, 10)
)
对此:
dplyr::tibble(
user_id = c(rep(1, 9), rep(2, 10)),
success = c(rep(1, 3),rep(0, 6), rep(1, 4), rep(0, 6))
)

最佳答案

我们可以uncount基于“试验”,然后按“user_id”分组,通过使用 row_number 创建逻辑条件将“成功”更改为二进制。

library(dplyr)
library(tidyr)
df1 %>%
uncount(trials) %>%
group_by(user_id) %>%
mutate(success = +(row_number() <= first(success))) %>%
ungroup
# A tibble: 19 x 2
# user_id success
# <dbl> <int>
# 1 1 1
# 2 1 1
# 3 1 1
# 4 1 0
# 5 1 0
# 6 1 0
# 7 1 0
# 8 1 0
# 9 1 0
#10 2 1
#11 2 1
#12 2 1
#13 2 1
#14 2 0
#15 2 0
#16 2 0
#17 2 0
#18 2 0
#19 2 0

或与 base R使用 Mapstack
stack(setNames(Map(function(x, y) rep(1:0, c(x, y)), 
df1$success, df1$trials - df1$success), df1$user_id))[2:1]

关于r - 将计数表转换为观察的分解表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62666359/

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