首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试最后一个值dyplr::mutated用于计算当前值

测试最后一个值dyplr::mutated用于计算当前值
EN

Stack Overflow用户
提问于 2022-03-30 21:33:18
回答 1查看 66关注 0票数 1

我试图在mtcar中修改一个新列,但是使新条目(行)依赖于同一列中的前一行(诚然,使用mtcar的示例是一派胡言)。

用.简化汽车。

代码语言:javascript
复制
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其他的,但它们似乎都是指现有的列,而不是主题列--或者它们指的是当前存在的多个列/行。

例如,以下两项工作均未完成:

代码语言:javascript
复制
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虽然有以下工作,但它是错误的:

代码语言:javascript
复制
mtcars1 <- mtcars %>% # works but wrong
  mutate (
    newcol = gear + carb + 
      ifelse(lag(.) >4, 0, 1)
  )

我正在寻找的结果是:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-30 21:55:47

一种选择分两步进行:

代码语言:javascript
复制
library(dplyr)

m.subset %>%
  mutate(newcol = ifelse(gear + carb <= 4, TRUE, FALSE),
         newcol = gear + carb + lag(newcol))

输出

代码语言:javascript
复制
                  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    8
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71684386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档