R 如何根据一列中的条件获取数据帧中一组行的标准偏差?

R 如何根据一列中的条件获取数据帧中一组行的标准偏差?,r,dplyr,R,Dplyr,我有一个数据帧 years, latitude, longitude 1971, 30.212, -87.423 1971, 30.211, -87.455 1971, 30.111, -94.444 1972, 24.114, -94.231 1972, 25.114, -92.121 我想找到纬度列的标准分布,这样就创建了一个新的列,并且对于1971年的每个实例都有一个重复的标准分布,对于1972年有一个不同的sd,等等 我相信这可能在dplyr宇宙的某个地方?在这个问题上有困难 在一个逻

我有一个数据帧

years, latitude, longitude
1971, 30.212, -87.423
1971, 30.211, -87.455
1971, 30.111, -94.444
1972, 24.114, -94.231
1972, 25.114, -92.121
我想找到纬度列的标准分布,这样就创建了一个新的列,并且对于1971年的每个实例都有一个重复的标准分布,对于1972年有一个不同的sd,等等

我相信这可能在dplyr宇宙的某个地方?在这个问题上有困难


在一个逻辑表达式中,我在问:
df$latitude
,当
df$years
=“所有模式(是年)”

假设您的数据帧是这样构建的,并且存储在一个名为“df”的变量中,那么标准偏差是多少

您需要使用dplyr执行以下代码:

output <- df %>% group_by(year) %>% summarise(dev = sd(lat))

merge(df, output, by = "year")
group\u按(年)划分的产出百分比%>%总结(dev=sd(lat))
合并(df,输出,按=“年”)

另一种方法,使用基本R

df$lat_sd <- ave(df$lat, df$year, FUN=sd)
df$lat\u sd
df%>%group\u by(year)%%>%mutate(lat\u sd=sd(lat))
output <- df %>% group_by(year) %>% summarise(dev = sd(lat))

merge(df, output, by = "year")
df$lat_sd <- ave(df$lat, df$year, FUN=sd)