丢失任何列的组均值

问题描述

我需要在不丢失任何列的情况下计算下面示例表的每组(即,每个坐标)的平均值(实际表有超过 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...