r - 在 Tidyverse 中连接 Row[-1,-3]
问题描述
我是 Tidyverse 和 dplyr 的新手,希望能就如何最好地连接当前行下方的行中的数据获得一些指导。例如,在下面的数据框中,我想使用 Grade 列中的数据来创建 Prior3Grades 列中的数据。2019 年 1 月 2 日的 Prior3Grades 数据将通过连接 12/3/18、11/3/18 和 10/4/18 的成绩来创建。
这可以使用 mutate 或其他方式在 dplyr 中实现吗?这也是 dplyr 的驾驶室还是更适合 sql 的东西。
解决方案
使用一些基本包tidyverse
:
library(dplyr)
library(tidyr)
library(tibble)
df <- tibble(
Name = "Bob",
TestDate = seq(as.Date("2019-02-01"), as.Date("2019-05-08"), length.out = 6), ## some random dates
Grade = c("A", "A", "B", "C", "D", "A")
)
df %>%
group_by(Name) %>%
mutate(
grade1 = lead(Grade),
grade2 = lead(Grade, 2),
grade3 = lead(Grade, 3)
) %>%
replace_na(list(grade1 = "", grade2 = "", grade3 = "")) %>%
mutate(
Prior3Grades = paste0(grade1, grade2, grade3)
)
推荐阅读
- angularjs - 定义多个控制器时出错
- android - 子完成()-es后父活动丢失CallingActivity
- shared-libraries - 编号的动态库文件,而不仅仅是“.so”文件
- c# - How to click the upload button in selenium c#
- arrays - Postgresql:将表示键值的文本转换为json
- c# - 当某些数据已经存在时停止上传
- javascript - Electronjs 操作 json 对象并在内部重新排序其键
- powerbi - DAX:如何构建“分段”度量?
- android - 我该如何修复此代码?(安卓科特林)
- javascript - pixi 无限滚动条