如何基于列值创建其他行或数据框

埃里克·哈恩(Erik Hahn)

以下是一些示例数据:

df <- data.frame(ID = c(1, 2, 2), 
                 Amount = c(100, 10, 100),
                 Time = c(0, 0, 24),
                 ADDL = c(5, 0, 1),
                 II = c(24, 24, 24))

使用此数据框,我想生成以下行/数据框,其中ADDL是应为给定ID生成的其他行数,II项是每行新记录应占用的时间间隔。

#      ID Amount Time 
# 1    1  100    0
# 2    1  100    24
# 3    1  100    48
# 4    1  100    72
# 5    1  100    96
# 6    1  100    120
# 7    2  10     0
# 8    2  100    24
# 9    2  100    48

我将生成的输出数据帧将具有> 350000行,因此需要一种有效的解决方案。

埃里克·哈恩(Erik Hahn)
#fastest option stays away from adding rows using a loop

#add rows function
addRows <- function(x){
  Times <- seq(from = x$Time, to = x$Time + x$ADDL*x$II, by = x$II)
  n <- length(Times)
  x %>% 
    dplyr::slice(rep(row_number(),n)) %>%
    dplyr::mutate(Time = Times)
}

df %>%
  dplyr::group_by(USUBJID, TIME, ADDL) %>%
  dplyr::group_split() %>%
  purrr::map_dfr( ~ addRows(.))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何基于其他行值添加熊猫数据框列

创建一个基于数据框中其他列的值创建新列的函数

数据框基于其他列创建新列

Python:基于其他列扩展数据框列值

如何基于其他列的排列在数据框中创建新列?

如何基于首次出现的日期和每个id列的其他列创建数据框

如何在Pandas数据框中的其他列中填充基于新列的值

如何基于其他数据框列替换熊猫列值

如何基于与其他列中的值匹配的行中的值创建新列?

如何基于来自其他数据框的两个条件创建列?

如何创建由包含相应行中其他值的列表组成的数据框列(在 R 中)?

如何将数据框的列的值与其他数据框中的正确行匹配?

如何通过基于其他2个数据框的条件比较列来创建2个新数据框?

使用对多个列应用功能,基于其他列的值将新列创建到数据框

如何基于其他行和其他数据框在数据框中查找行

基于其他列条件和其他列计算的数据框新列值

如何使用函数使用其他列值创建新的数据框列?

熊猫数据框基于其他数据框的列创建一个新列

通过查找其他行中的值来创建新的pandas数据框列

根据其他数据框值创建一列

基于其他数据框中的列中的值来匹配数据框中的列

基于遍历和比较其他数据框中的列来创建新的数据框

如何创建新列,将值与其他数据框中的标头匹配

熊猫:如何创建基于其他列值的条件对其他列求和的列?

如何在基于其他数据框的数据框中创建联接?

如何在R中的分组数据框中基于与其他行中的值的比较来过滤行?

如何基于Pandas数据框中其他多个列的值添加两个新列?

如何按其他列的条件按行值提取数据框?

根据其他数据框中的列值在熊猫数据框中创建列