使用包含第n行值的函数使用mutate
问题描述:
我想知道是否可以使用dplyr
的mutate
函数将新列添加到数据框,该数据框是来自其他列的多个行值的函数。例如,如果我有一个数据帧df
,列a
和b
并且想要创建一个新列c
,其中c = a[n] + b[n +1]
,我可以使用mutate
与for
循环吗?使用包含第n行值的函数使用mutate
我尝试下面的代码,但它不工作:
for(n in 1:nrow(df)){
df %>%
mutate(c = a[n] + b[n + 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
什么是变量'N'? –