2017-07-24 52 views
1

我想知道是否可以使用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'? –

回答

3

你可能會尋找它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