【问题标题】:Using mutate with function that includes nth row value将 mutate 与包含第 n 行值的函数一起使用
【发布时间】:2017-07-24 18:30:15
【问题描述】:

我想知道是否可以使用dplyr 的mutate 函数向数据框中添加一个新列,该列是来自其他列的多个行值的函数。例如,如果我有一个数据框df,其中包含a 和b 列,并且想要创建一个新列c,其中c = a[n] + b[n +1],我可以将mutate 与for 循环一起使用吗?

我尝试了以下代码,但没有成功:

  for(n in 1:nrow(df)){
        df %>%
              mutate(c = a[n] + b[n + 1])    
  }

【问题讨论】:

  • 什么是变量n?

标签: r for-loop dplyr


【解决方案1】:

您可能正在寻找它lead 的函数,以获取b 偏移一条记录的视图。那么命令将是

df %>% mutate(c=a + lead(b, 1))

例如,

> data.frame(a=1:10, b=1:10) %>% mutate(c = a + lead(b, 1))
    a  b  c
1   1  1  3
2   2  2  5
3   3  3  7
4   4  4  9
5   5  5 11
6   6  6 13
7   7  7 15
8   8  8 17
9   9  9 19
10 10 10 NA

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-13
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多