R 转换数据帧列表,以获得df名称的平均值和年平均值

R 转换数据帧列表,以获得df名称的平均值和年平均值,r,list,mean,R,List,Mean,我正在用R语言分析河流流量数据,我有一个数据帧列表。每个数据帧代表一个子基(910、950、1012和1087),具有完全相同的结构和变量数量,并包含每年的IHA指标值(IHA1、IHA2)(2004:2007) 流程测试嗨,乔安娜,一个可能的解决方案是: library(plyr) library(dplyr) # bind list to a tibble and make list names to a column Flowtest_df <- plyr::ldply(Flowt

我正在用R语言分析河流流量数据,我有一个数据帧列表。每个数据帧代表一个子基(910、950、1012和1087),具有完全相同的结构和变量数量,并包含每年的IHA指标值(IHA1、IHA2)(2004:2007)


流程测试嗨,乔安娜,一个可能的解决方案是:

library(plyr)
library(dplyr)

# bind list to a tibble and make list names to a column
Flowtest_df <- plyr::ldply(Flowtest, data.frame) %>% 
  dplyr::rename(RCH = 1)

# mean
Flowtest_df %>% 
  dplyr::summarise(IHA1_mean = mean(IHA1),
                   IHA2_mean = mean(IHA2))
# year mean
Flowtest_df %>% 
  dplyr::group_by(Year) %>% 
  dplyr::summarise(IHA1_mean = mean(IHA1),
                   IHA2_mean = mean(IHA2))
# RCH mean
Flowtest_df %>%  
  dplyr::group_by(RCH) %>% 
  dplyr::summarise(IHA1_mean = mean(IHA1),
                   IHA2_mean = mean(IHA2))
库(plyr)
图书馆(dplyr)
#将列表绑定到TIBLE,并将列表名称绑定到列
流量试验(单位:df%)
dplyr::重命名(RCH=1)
#卑鄙
流程测试_df%>%
dplyr::总结(IHA1_平均值=平均值(IHA1),
IHA2_平均值=平均值(IHA2))
#年平均数
流程测试_df%>%
dplyr::按年份划分的分组百分比>
dplyr::总结(IHA1_平均值=平均值(IHA1),
IHA2_平均值=平均值(IHA2))
#RCH均值
流程测试_df%>%
dplyr::分组依据(RCH)%>%
dplyr::总结(IHA1_平均值=平均值(IHA1),
IHA2_平均值=平均值(IHA2))

嗨,乔安娜,一个可能的解决方案是:

library(plyr)
library(dplyr)

# bind list to a tibble and make list names to a column
Flowtest_df <- plyr::ldply(Flowtest, data.frame) %>% 
  dplyr::rename(RCH = 1)

# mean
Flowtest_df %>% 
  dplyr::summarise(IHA1_mean = mean(IHA1),
                   IHA2_mean = mean(IHA2))
# year mean
Flowtest_df %>% 
  dplyr::group_by(Year) %>% 
  dplyr::summarise(IHA1_mean = mean(IHA1),
                   IHA2_mean = mean(IHA2))
# RCH mean
Flowtest_df %>%  
  dplyr::group_by(RCH) %>% 
  dplyr::summarise(IHA1_mean = mean(IHA1),
                   IHA2_mean = mean(IHA2))
库(plyr)
图书馆(dplyr)
#将列表绑定到TIBLE,并将列表名称绑定到列
流量试验(单位:df%)
dplyr::重命名(RCH=1)
#卑鄙
流程测试_df%>%
dplyr::总结(IHA1_平均值=平均值(IHA1),
IHA2_平均值=平均值(IHA2))
#年平均数
流程测试_df%>%
dplyr::按年份划分的分组百分比>
dplyr::总结(IHA1_平均值=平均值(IHA1),
IHA2_平均值=平均值(IHA2))
#RCH均值
流程测试_df%>%
dplyr::分组依据(RCH)%>%
dplyr::总结(IHA1_平均值=平均值(IHA1),
IHA2_平均值=平均值(IHA2))
您还可以执行以下操作:

map(list(NULL,'Year','subbasin'), ~bind_rows(Flowtest, .id = "subbasin") %>%
      group_by(.dots = .x)%>%summarise(across(starts_with("IHA"), mean),.groups='drop'))
[[1]]
# A tibble: 1 x 2
   IHA1  IHA2
  <dbl> <dbl>
1  453.  582.

[[2]]
# A tibble: 4 x 3
   Year  IHA1  IHA2
  <int> <dbl> <dbl>
1  2004  243.  532.
2  2005  392.  762.
3  2006  614.  735 
4  2007  564.  300.

[[3]]
# A tibble: 4 x 3
  subbasin  IHA1  IHA2
  <chr>    <dbl> <dbl>
1 1012      445   561 
2 1087      575   698.
3 910       181.  643.
4 950       612.  427
map(列表(NULL,'Year','subbasin'),~bind_行(Flowtest,.id=“subbasin”)%>%
分组依据(.dots=.x)%>%总结(跨越(以“IHA”开头),平均值),.groups='drop'))
[[1]]
#一个tibble:1x2
IHA1 IHA2
1  453.  582
[[2]]
#一个tibble:4x3
年份IHA1 IHA2
1  2004  243.  532
2  2005  392.  762
3  2006  614.  735
4  2007  564.  300
[[3]]
#一个tibble:4x3
亚基IHA1-IHA2
1 1012      445   561 
2 1087      575   698.
3 910       181.  643
4 950       612.  427
您还可以执行以下操作:

map(list(NULL,'Year','subbasin'), ~bind_rows(Flowtest, .id = "subbasin") %>%
      group_by(.dots = .x)%>%summarise(across(starts_with("IHA"), mean),.groups='drop'))
[[1]]
# A tibble: 1 x 2
   IHA1  IHA2
  <dbl> <dbl>
1  453.  582.

[[2]]
# A tibble: 4 x 3
   Year  IHA1  IHA2
  <int> <dbl> <dbl>
1  2004  243.  532.
2  2005  392.  762.
3  2006  614.  735 
4  2007  564.  300.

[[3]]
# A tibble: 4 x 3
  subbasin  IHA1  IHA2
  <chr>    <dbl> <dbl>
1 1012      445   561 
2 1087      575   698.
3 910       181.  643.
4 950       612.  427
map(列表(NULL,'Year','subbasin'),~bind_行(Flowtest,.id=“subbasin”)%>%
分组依据(.dots=.x)%>%总结(跨越(以“IHA”开头),平均值),.groups='drop'))
[[1]]
#一个tibble:1x2
IHA1 IHA2
1  453.  582
[[2]]
#一个tibble:4x3
年份IHA1 IHA2
1  2004  243.  532
2  2005  392.  762
3  2006  614.  735
4  2007  564.  300
[[3]]
#一个tibble:4x3
亚基IHA1-IHA2
1 1012      445   561 
2 1087      575   698.
3 910       181.  643
4 950       612.  427