r - Dplyr - 满足条件的第一个值
问题描述
我有这个数据框
library(tidyverse)
df <- tribble(
~a, ~b, ~c
, 1, 1, 1
, 1, 0, 2
, 1, 0, 3
, 2, 0, 1
, 2, 1, 2
, 2, 1, 3
)
我想添加一个d
包含按满足条件a
的第一个值分组的列,就像这样......c
b == 1
tribble(
~a, ~b, ~c, ~d
, 1, 1, 1, 1
, 1, 0, 2, 1
, 1, 0, 3, 1
, 2, 0, 1, 2
, 2, 1, 2, 2
, 2, 1, 3, 2
)
我怎样才能做到这一点?(理想情况下使用dplyr
)
解决方案
使用的dplyr
解决方案first
:
df %>%
group_by(a) %>%
mutate(d = first(c[b==1])) %>%
ungroup()
推荐阅读
- thymeleaf - Remove trailing zeros on currency
- c# - Azure - authenticating to KeyVault using Service Principle returns an Unauthorized exception
- ios - UITableView-upon scrolling it loses properties associated with selected cells. How to save these properties? - swift
- arrays - sorting an array where the second property may be nonexistent
- php - 带有 IntelliJ / PhpStorm 的通用 PHPDoc?
- r - 用 ggplot2 绘制圆的线段
- ios - 是否可以将状态栏的字体颜色更改为自定义颜色?
- encoding - indy TCPSERVER.IOHandler.DefStringEncoding := indytextencoding_utf8 导致 android 崩溃
- c# - 无法在运行时统一创建和保存动画文件
- android - Android Room:用新架构替换现有架构(迁移和所有)?