将group_by()与自定义函数或操作组合

将group_by()与自定义函数或操作组合,r,dataframe,dplyr,R,Dataframe,Dplyr,我想在我的数据框内按组运行函数。该函数比较相邻行,但应为每组“重置”。我尝试了以下方法: library(dplyr) df1 <- as.data.frame(list('x'=1:6,'y'=(1:6)^2,'z'=5:10, 'g'=c(4,4,4,5,5,5), 'h'=c('a','a','b','b','c','c'))) df1 <- group_by(df1,h) %>% for (i in 2:nrow(

我想在我的数据框内按组运行函数。该函数比较相邻行,但应为每组“重置”。我尝试了以下方法:

library(dplyr)
df1 <- as.data.frame(list('x'=1:6,'y'=(1:6)^2,'z'=5:10, 'g'=c(4,4,4,5,5,5),
                          'h'=c('a','a','b','b','c','c')))
df1 <- group_by(df1,h) %>%
  for (i in 2:nrow(df1)) {
    df1$Head.Distance[i] <- with(df1, sqrt((x[i] - x[i-1])^2 + 
                                             (y[i] - y[i-1])^2 +
                                             (z[i] - z[i-1])^2))
  }
库(dplyr)

df1我认为您可能正在寻找
变异
滞后

df1 %>% 
  group_by(h) %>% 
  mutate(xl = (x - lag(x,1))^2,
         yl = (y - lag(y,1))^2)

我想您可能正在寻找
变异
滞后

df1 %>% 
  group_by(h) %>% 
  mutate(xl = (x - lag(x,1))^2,
         yl = (y - lag(y,1))^2)

谢谢那正是我要找的!谢谢那正是我要找的!