【发布时间】:2021-05-06 19:00:13
【问题描述】:
这是我拥有的数据
structure(list(id = c(1, 1, 1, 1, 1), columnA = c("2011/01/01",
"2013/01/01", "2014/01/01", "2015/01/01", "2015/01/10"), columnB = c("NA",
"2013/01/01", "2013/01/02", "2014/01/01", "NA")), row.names = c(NA,
5L), class = "data.frame")
这就是我想要的
structure(list(id = c(1, 1, 1, 1, 1), A = c("2011/01/01", "2013/01/01",
"2014/01/01", "2015/01/01", "2015/01/10"), B = c("NA", "2013/01/02",
"NA", "2014/01/01", "NA")), row.names = c(NA, 5L), class = "data.frame")
基本上,我希望 columnA 和 columnB 中的值相等,然后从同一列中的第 -1 行调出值,并插入一个 NA 代替该列向上的值。 我试过这个
`library(dplyr)
data %>%
group_by(id) %>%
mutate(columnB = case_when(is.na(columnB) ~ NA_character_,
columnA == columnB ~ lead(columnB))) %>%
ungroup
`
问题在于它将列 B 中的所有其他值也转换为 NA。我希望 A 和 B 中的值不等于保持不变且不转换为 NA。
【问题讨论】:
标签: r data-wrangling