使用包含第n行值的函数使用mutate

使用包含第n行值的函数使用mutate

问题描述:

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

我尝试下面的代码,但它不工作:

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

什么是变量'N'? –

你可能会寻找它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