使用uncount复制r中的某些列,但不复制其他列
我正在使用一个有两个不同计数的数据集,最终目标是得到给定年份的一个与另一个的比率。每一行都是同一组人——因此在下面的数据框架中,第一次观察是1990年的一组人,共有9名成员,其中一名成员具有某种兴趣特征使用uncount复制r中的某些列,但不复制其他列,r,R,我正在使用一个有两个不同计数的数据集,最终目标是得到给定年份的一个与另一个的比率。每一行都是同一组人——因此在下面的数据框架中,第一次观察是1990年的一组人,共有9名成员,其中一名成员具有某种兴趣特征 year <- c(1990, 1990, 1991, 1992, 1992) count_1 <- c(9, 8, 8, 7, 4) count_2 <- 1, 0, 0 1, 1) df <- data.frame(year, count_1, count_2)
year <- c(1990, 1990, 1991, 1992, 1992)
count_1 <- c(9, 8, 8, 7, 4)
count_2 <- 1, 0, 0 1, 1)
df <- data.frame(year, count_1, count_2)
这对count_1
列非常有效-总观察值为36,与总人数相匹配。然而,它也重复了count_2
列,因此现在我们有20人,而不是3个具有兴趣特征的人。有没有更好的方法来扩展数据集,或者有没有更好的方法来构造原始数据以使其工作
我也尝试了
expandRows()
,但遇到了同样的问题。我也尝试过先将count_2
从数据帧中拉出以保留它,但现在我不确定如何将它放回最终的数据帧并匹配观察值,因为行号现在不同了。问题不是非常清楚(为什么要使用uncount
?),因此,我只根据这句话给你们两种方法:
最终目标是获得给定年份的一对另一比率
year`summary()`解组输出(用`.groups`参数覆盖)
#>#tibble:3 x 4
#>年份计数\u 1计数\u 2比率\u 2与\u 1
#>
#> 1 1990 17 1 0.0588
#> 2 1991 8 0 0
#> 3 1992 11 2 0.182
使用数据表
包:
库(data.table)
数据表(dat)[,lappy(.SD,sum),按=“年”][
,比率2 1:=计数2/计数1][]
#>年份计数\u 1计数\u 2比率\u 2与\u 1
#> 1: 1990 17 1 0.05882353
#> 2: 1991 8 0 0.00000000
#> 3: 1992 11 2 0.18181818
谢谢,但这基本上与我最初遇到的问题相同-1990年仍有9个观察值,count_2
为1,而我希望只有1个观察值。谢谢,这绝对可以得到我想要的比率!伟大的如果答案对你有效,请随意接受。否则,您可以等待更多响应。
df <- df %>%
uncount(count_1, .remove = F)