【问题标题】:replicate the row depending on a column根据列复制行
【发布时间】:2018-07-09 23:48:00
【问题描述】:

我有一个查看 22.000 个人的数据集。然而,它有一个时间变量告诉我这个人第一次被观察到的时间和最后一次被观察到的时间。所以我制作了一个额外的列,告诉我观察到个人的绝对季度数。现在我想让这个数据集成为一个面板数据集,并按照观察到的季度数复制每个人。 我发现了这个问题

Replicate each row of data.frame and specify the number of replications for each row

这非常符合我的担忧。但是打代码:

df.expanded <- df[rep(seq(nrow(df)), df$Quartale), 1:2]

“Quartale”是四分之一的 Var 的名称 产生此错误: df$Quatarle 中的错误:“闭包”类型的对象不是子集

【问题讨论】:

  • 欢迎来到 StackOverflow!对于代码调试,请始终根据MCVEr 标记描述以reproducible 示例询问所需的输出。您可以使用dput()reprex::reprex() 或内置数据集来获取可重现的数据。
  • 你能分享一下你的数据框是什么样子的吗?并告诉我们df$Quartale 的类型使用typeof()
  • 根据该错误消息,您似乎也可能有错字。是df$Quartale 还是df$Quatarle
  • 对不起,没有早点回来……所以我回到数据中做了几个汇总统计,最后决定额外的观察只有很少的变化,所以我会人为地增加数据集。因此,我没有跟进此事。再次抱歉迟到的回复,感谢您的帮助!

标签: r


【解决方案1】:

在没有示例数据集的情况下更难以评估,但我认为您可以为此使用 tidyr 包。

假设您的数据df,并且您的频率计数是df$Quartale,那么以下应该可以工作:

library(tidyr)
uncount(df, Quartale)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-09
    • 2021-11-20
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2012-09-06
    • 1970-01-01
    相关资源
    最近更新 更多