【问题标题】:How to retain class of variable in `tapply`?如何在 `tapply` 中保留变量类?
【发布时间】:2023-02-18 04:06:27
【问题描述】:

假设我的数据框是这样设置的:

X <- data.frame(
  id = c('A', 'A', 'B', 'B'),
  dt = as.Date(c('2020-01-01', '2020-01-02', '2021-01-01', '2021-01-02'))
)

我想填充日期特定于 id 的最小值dt 的变量

这样做:X$dtmin &lt;- with(X, tapply(dt, id, min)[id]) 给出一个数字,因为 tapply 中的 simplify=T 已将值转换为数字。它为什么这样做?设置 simplify=F 返回一个列表,列表中的每个元素都具有所需的数据结构,但是在我的数据框中填充变量 X 会将这些转换回数字。如何保留dt的数据结构?

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    我们可能会使用

    with(X, do.call("c", tapply(dt, id, min, simplify = FALSE)[id]))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 2020-10-14
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      相关资源
      最近更新 更多