【问题标题】:R and dplyr: Creating a new column that divides values by multiple maximal values of another columnR和dplyr:创建一个新列,将值除以另一列的多个最大值
【发布时间】:2016-07-09 14:40:46
【问题描述】:

我正在使用 dplyr 编辑数据框,其中我有关于不同个体 (id) 的多个反应时间 (rt) 的信息。我现在想创建一个新列,将每个特定的反应时间除以个人的最大反应时间。 目前,我只能使用以下代码将每个特定的反应时间除以该组的最大反应时间:

df <- mutate(df, spcRT=rt)
df <- group_by(df, id, rt) %>% summarise(
      spcRT = max(df$rt, na.rm=TRUE) ) %>% as.data.frame()
 which(is.na(df))

df <- mutate(df,IDspcRT = rt/spcRT)

【问题讨论】:

  • 请展示一个可重现的小示例,供其他人使用您的代码

标签: r dplyr


【解决方案1】:

如果我们需要通过将每个 'id' 的反应时间 ('rt') 除以最大反应时间 (max(rt, na.rm=TRUE)) 来创建列 ('spcRT'),那么我们需要按 'id' 分组并进行除法。

 df %>%
    group_by(id) %>%
    mutate(spcRT = rt/max(rt, na.rm=TRUE))

尚不清楚为什么 OP 在帖子中使用“rt”和“id”作为分组变量。它只会给出一个唯一的“rt”值,不需要任何max

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多