我有一个数据集,它包含一个组(idgroup
)和它的系数(coef
列)。小例子
groups=structure(list(idgroup = c(1L, 3L, 4L), coef = c(2.1, 1.7, 1.3
)), class = "data.frame", row.names = c(NA, -3L))
和一个带有百分比的数据集。小例子
perc = structure(list(idgroup = c(1L, 2L, 4L, 5L), percent = c(0.4753,
0.5392, 0.48, 0.51), month_id = c(202304L, 202304L, 202305L,
202305L)), class = "data.frame", row.names = c(NA, -4L))
如何将groups
表中的系数值乘以perc
表中的idgroups
的百分比值?在这种情况下,只有idgroups
=1和4。
我可以自己做,但困难的是,它必须分别为每个month_id
在这种情况下,我们只有2个。(例如,202304,202305)但只有在这样的方式,每个月都在自己的列
换句话说,所需的输出应该如下所示
idgroup month_id1 month_id2
1 1 0.99813 NA
2 4 NA 0.624
month_id1是第一个月(即202304),month_id2是第二个月(即202305)在perс
中不会发生超过2个月
我怎么能得到这样一个理想的输出。先谢谢你。
1条答案
按热度按时间nbysray51#
如果您对基于
tidyverse
的解决方案持开放态度,这可能会给您带来您正在寻找的东西:这个返回
首先,我们使用
inner_join
将结果限制为两个数据集中都存在的idgroups
。接下来,我们通过将coef
和percent
相乘,同时去除coef
和percent
来计算值。最后,我们使用pivot_wider
将其转换为更宽的形式。这里的新列名基于month_id
s。或者是
base R
版本:返回