R 和 DPLYR:我正在尝试总结一个非数字变量的平均站点分数,但我无法将其转换为百分比

R and DPLYR: I'm trying to summarize an average site score for a nonnumeric variable and I can't get it to convert to a percentage

我正在分析河流物理栖息地特征的数据集。对于每个站点,我们都有各种变量,这些变量是在 10 点样带上测量的。按位置、范围和横断面总结这些变量中的大多数很简单,但其中之一,底物,使用非数字数据进行评分。我正在尝试为每个横断面创建一个摘要以用于我的统计分析,但使用 dplyrsummarizepivot_wider 不起作用。当我使用 summarize 基底变量的非数字值时 returns 出现错误,而对于 pivot_wider 我没有为从基底变量创建的新列输入的值。

这是我要总结的原始数据示例。

Location Reach Transect Flow Depth Substrate
RIX 1 1 0.4 14 CO
RIX 1 1 0.5 12 BO
RIX 1 1 0.3 11 SA
RIX 1 1 0.4 14 GR
RIX 1 1 0.4 14 CO
RIX 1 2 0.4 17 CO
RIX 1 2 0.5 18 SA
RIX 1 2 0.1 22 SA
RIX 1 2 0.6 15 GR
RIX 1 2 0.4 14 SILT
RIX 2 1 0.4 14 CO
RIX 2 1 0.5 12 BO
RIX 2 1 0.3 11 SA
RIX 2 1 0.4 14 GR
RIX 2 1 0.4 14 CO
RIX 2 2 0.4 17 CO
RIX 2 2 0.5 18 SA
RIX 2 2 0.1 22 SA
RIX 2 2 0.6 15 GR
RIX 2 2 0.4 14 SILT
ARA 1 1 0.4 14 CO
ARA 1 1 0.5 12 BO
ARA 1 1 0.3 11 SA
ARA 1 1 0.4 14 GR
ARA 1 1 0.4 14 CO
ARA 1 2 0.4 17 CO
ARA 1 2 0.5 18 SA
ARA 1 2 0.1 22 SA
ARA 1 2 0.6 15 GR
ARA 1 2 0.4 14 SILT
ARA 2 1 0.4 14 CO
ARA 2 1 0.5 12 BO
ARA 2 1 0.3 11 SA
ARA 2 1 0.4 14 GR
ARA 2 1 0.4 14 CO
ARA 2 2 0.4 17 CO
ARA 2 2 0.5 18 SA
ARA 2 2 0.1 22 SA
RIX 2 2 0.6 15 GR
RIX 2 2 0.4 14 SILT

这是我要创建的内容。

Location Reach Transect Flow Depth CO GR SA SILT BO
RIX 1 1 0.4 13 .40 .20 .20 0 .20
RIX 1 2 0.4 17.2 .20 .20 .40 .20 0
RIX 2 1 0.4 13 .40 .20 .20 0 .20
RIX 2 2 0.4 17.2 .20 .20 .40 .20 0

我不确定如何填充我在 dplyr 中使用 pivot_wider 函数创建的新列,以及如何在我使用 summarize函数。

实现您想要的结果的一个选项是添加一个 id 列(使 pivot_wider 起作用)和一个新的 1 列(在转换为 wide 时用作指示器和值列格式):

library(dplyr)
library(tidyr)

df %>% 
  mutate(id = row_number(), value = 1) %>% 
  pivot_wider(names_from = "Substrate", values_from = "value", values_fill = 0) %>% 
  group_by(Location, Reach, Transect) %>% 
  summarise(across(everything(), mean), .groups = "drop") %>% 
  select(-id)
#> # A tibble: 8 × 10
#>   Location Reach Transect  Flow Depth    CO    BO    SA    GR  SILT
#>   <chr>    <int>    <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 ARA          1        1 0.4    13   0.4     0.2 0.2   0.2   0    
#> 2 ARA          1        2 0.4    17.2 0.2     0   0.4   0.2   0.2  
#> 3 ARA          2        1 0.4    13   0.4     0.2 0.2   0.2   0    
#> 4 ARA          2        2 0.333  19   0.333   0   0.667 0     0    
#> 5 RIX          1        1 0.4    13   0.4     0.2 0.2   0.2   0    
#> 6 RIX          1        2 0.4    17.2 0.2     0   0.4   0.2   0.2  
#> 7 RIX          2        1 0.4    13   0.4     0.2 0.2   0.2   0    
#> 8 RIX          2        2 0.429  16.4 0.143   0   0.286 0.286 0.286