我正在尝试向数据框中添加另一列,其中新列是新列中先前值和当前行值的函数。我尝试删除不相关的代码并保留简单的数字,以便我可以理解这里的答案。给定以下数据框:
\n x\n1 1\n2 2\n3 3\n4 4\n5 5\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n我尝试使用 case_when() 和 lag() 函数,如下所示:
\ntest_df <- data.frame(x = 1:5)\ntest_df %>% mutate(y = case_when(x==1 ~ 6,\n+ x>1 ~ x+5+lag(y)))\nRun Code Online (Sandbox Code Playgroud)\n\n错误:
mutate()列有问题y。\n\xe2\x84\xb9y = case_when(x == 1 ~ …