我试图在mtcar中修改一个新列,但是使新条目(行)依赖于同一列中的前一行(诚然,使用mtcar的示例是一派胡言)。
用.简化汽车。
m.subset <- mtcars[2:7, 10:11] # top few rows and only the relevant columns也有人问过类似的问题。
Reuse value of previous row during dplyr::mutate
use the diff function with mutate at from dplyr
...and其他的,但它们似乎都是指现有的列,而不是主题列--或者它们指的是当前存在的多个列/行。
例如,以下两项工作均未完成:
mtcars1 <- mtcars %>% # doesn't work
mutate (
newcol = gear + carb +
ifelse(shift(newcol, n=1, type = "lag") >4, 0, 1)
)
mtcars1 <- mtcars %>% # doesn't work
mutate (
newcol = gear + carb +
ifelse(shift(., n=1, type = "lag") >4, 0, 1)
)...and虽然有以下工作,但它是错误的:
mtcars1 <- mtcars %>% # works but wrong
mutate (
newcol = gear + carb +
ifelse(lag(.) >4, 0, 1)
)我正在寻找的结果是:

发布于 2022-03-30 21:55:47
一种选择分两步进行:
library(dplyr)
m.subset %>%
mutate(newcol = ifelse(gear + carb <= 4, TRUE, FALSE),
newcol = gear + carb + lag(newcol))输出
gear carb temp
Mazda RX4 Wag 4 4 NA
Datsun 710 4 1 5
Hornet 4 Drive 3 1 4
Hornet Sportabout 3 2 6
Valiant 3 1 4
Duster 360 3 4 8https://stackoverflow.com/questions/71684386
复制相似问题