按多列分组并从 R 中的另一列分配值

Posted

技术标签:

【中文标题】按多列分组并从 R 中的另一列分配值【英文标题】:Group by multiple columns and assign value from another column in R 【发布时间】:2021-05-16 13:44:06 【问题描述】:

我在 R 中有如下数据集:

我想添加一个新列“开始输出”,它基本上从输出列中获取时间 = 0 的值,但也按温度对它们进行分组。示例解决方案如下:

我尝试了以下代码,但它仅适用于第一批,不适用于所有批次。 df$输出[df$时间 == 24 | df$Time == 48 ]

我尝试使用 group_by() 和 mutate 但没有成功。任何帮助表示赞赏!

【问题讨论】:

【参考方案1】:
df %>%
  group_by(Temp) %>%
  mutate(`Starting Output` = ifelse(Time==0, Output, NA)) %>%
  tidyr::fill(`Starting Output`, .direction = "down") %>%
  ungroup()

# A tibble: 6 x 5
  Batch  Temp  Time Output `Starting Output`
  <chr> <dbl> <dbl>  <dbl>             <dbl>
1 A        15     0     12                12
2 A        15    24     34                12
3 A        15    48     36                12
4 A        25     0     13                13
5 A        25    24     22                13
6 A        25    48     24                13

【讨论】:

以上是关于按多列分组并从 R 中的另一列分配值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 的另一列中的字符串值中从数据框中的一列中搜索字符串?

SQL中的Group By的查询过程多列分组的查询过程是怎样的?

如何连接由 Presto 中的另一列分组的数组?

比较两个列并从同一个表中的另一列获取数据

使用 Scala 将列分配给 Spark Dataframe 中的另一列

基于R中的另一列数据框找到一列的共同值