r - 将分组变量的第一个值和最后一个值粘贴在一起
问题描述
我有一个看起来像这样的df:
group sequence link
90 1 11|S1
90 2 10|S1
90 3 12|10
91 1 9|10
91 2 13|9
93 1 15|20
...
如何将link
每个组中变量的第一个和最后一个值存储为新变量?期望的输出是:
group sequence link Key
90 1 11|S1 11|S1, 12|10
90 2 10|S1 11|S1, 12|10
90 3 12|10 11|S1, 12|10
91 1 9|10 9|10, 13|9
91 2 13|9 9|10,13|9
93 1 15|20
....
解决方案
你可以这样做:
library(dplyr)
df %>%
group_by(group) %>%
mutate(
Key = paste(link[1], link[n()], sep = ", ")
)
虽然这与您想要的输出不匹配。在您的示例数据框中,您有例如91
只有 1 个值的组。上面的代码会9|10
反复给你作为开始和结束。
如果您只想在这种情况下显示一个值,您可以执行以下操作:
df %>%
group_by(group) %>%
mutate(
Key = case_when(
n() > 1 ~ paste(link[1], link[n()], sep = ", "),
TRUE ~ as.character(link)
)
)
推荐阅读
- javascript - 如何在对象数组中找到五个最常见的元素并使用 .reduce() 将它们汇总
- c++ - 如何确定 TWAIN 扫描仪是 ADF/平板式扫描仪,还是两者兼有
- android - 如何使用 kotlin 显示警报
- symfony - 可以允许 Messenger 的消费命令从 SQS 消息读取失败中恢复吗?
- swift - 如何通过在同一 CoreData 模型中提供 id(UUID) 来获取数据?
- python - PyTorch 中具有可变输出大小的多对多 RNN
- python - 围绕椭圆移动圆
- generics - 通用特征和生命周期的问题
- html - 如何从 CSS 动画中删除空白区域
- python - 如何在不重复的情况下加入数据框?