如何解决丢失任何列的组均值
我需要在不丢失任何列的情况下计算下面示例表的每组(即,每个坐标)的平均值(实际表有超过 40,000 行,具有不同的状态、位置坐标和类型)所以这个:>
状态 | 位置坐标 | 类型 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 |
---|---|---|---|---|---|---|---|---|---|---|---|
加利福尼亚 | 西 | 债务 | 234 | 56 | 79 | 890 | 24 | 29 | 20 | 24 | 26 |
内华达 | 西 | 债务 | 45 | 54 | 87 | 769 | 54 | 76 | 90 | 87 | 98 |
会变成这样:
状态 | 位置坐标 | 类型 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 |
---|---|---|---|---|---|---|---|---|---|---|---|
西 | 西 | 债务 | 234 | 56 | 79 | 890 | 24 | 29 | 20 | 24 | 26 |
当我使用聚合时 (df
位置坐标 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
西 | 235 | 55 | 83 | 843 | 24 | 29 | 20 | 24 | 26 | 债务 | 54 | 769 | 76 | 87 |
当我使用 sqldf 时,它会平均年份并变成这样:
状态 | 位置坐标 | 类型 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 |
---|---|---|---|---|---|---|---|---|---|---|---|
西 | 西 | 债务 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 |
有什么建议吗?
解决方法
一个选项是首先将“状态”更改为“坐标”,然后应用包括分组变量“状态”、“坐标”和“类型”的公式方法
df$State <- df$`Location Coordinates`
aggregate(.~ State + `Location Coordinates` + Type,df,FUN = mean)
,
@akrun:这行得通吗:
df %>%
group_by(Coordinates) %>%
summarise(State=Coordinates,Type=Type,across(where(is.numeric),~mean(.x,na.rm = TRUE))) %>%
filter(row_number() %% 2 == 0) ## Select even rows
输出:
# Groups: Coordinates [1]
Coordinates State Type `2002` `2003` `2004` `2005` `2006` `2007` `2008` `2009` `2010`
<chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 West West Debt 140. 55 83 830. 39 52.5 55 55.5 62
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。