小编Cos*_*tle的帖子

在 mutate() 函数中使用 lag() 时出现问题 (tidyverse)

我正在尝试向数据框中添加另一列,其中新列是新列中先前值和当前行值的函数。我尝试删除不相关的代码并保留简单的数字,以便我可以理解这里的答案。给定以下数据框:

\n
  x\n1 1\n2 2\n3 3\n4 4\n5 5\n
Run Code Online (Sandbox Code Playgroud)\n

下一列 (y) 会将 5 加到 x 上,并加上上一行的 y 值。第一行中没有 y 的先前值,因此我将其定义为 0。因此 y 的第一行值将是 x+5+0 或 1+5+0 或 6。第二行将是 x+5+ y(从第一行开始)或 2+5+6 或 13。数据框应如下所示:

\n
  x  y\n1 1  6\n2 2 13\n3 3 21\n4 4 30\n5 5 40\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试使用 case_when() 和 lag() 函数,如下所示:

\n
test_df <- data.frame(x = 1:5)\ntest_df %>% mutate(y = case_when(x==1 ~ 6,\n+                                    x>1 ~ x+5+lag(y)))\n
Run Code Online (Sandbox Code Playgroud)\n
\n

错误:mutate()列有问题y。\n\xe2\x84\xb9 y = case_when(x == 1 ~ …

r dplyr

4
推荐指数
1
解决办法
457
查看次数

标签 统计

dplyr ×1

r ×1