重复基于自定义的平均值

发布于 2025-02-12 21:44:44 字数 1349 浏览 0 评论 0原文

我有一个分钟到最大自定义订购“ class_0_1”,“ class_1_3”,“ class_3_9”,“ class_9_25”,“ class_25_50”,“ class_50”

library(dplyr)

my.ds <- read.csv("https://raw.githubusercontent.com/Leprechault/trash/main/test_ants.csv")

my.ds$ClassType <- cut(my.ds$AT,breaks=c(-Inf,1,2.9,8.9,24.9,49.9,Inf),
    right=FALSE,labels=c("Class_0_1","Class_1_3","Class_3_9",
    "Class_9_25","Class_25_50","Class_50"))

my.ds%>% group_by(nest,ClassType)%>% summarize(avg=mean(AT))
# A tibble: 14 x 3
# Groups:   nest [7]
    nest ClassType       avg
   <int> <fct>         <dbl>
 1     2 Class_9_25   19.0  
 2     3 Class_0_1     0.776
 3     3 Class_9_25   12.4  
 4     3 Class_25_50  29.4  
 5     4 Class_1_3     2.42 
 6     4 Class_9_25   17.0  
 7     7 Class_9_25   18.2  
 8     7 Class_25_50  33.1  
 9    10 Class_3_9     5.22 
10    10 Class_9_25   13.6  
11    10 Class_25_50  38.9  
12    10 Class_50    110.   
13  1066 Class_0_1     0.111
14  1067 Class_0_1     0.436

我想在内部重复最后一个平均值nest中的中间缺失clasStype。例如

    nest ClassType       avg
   <int> <fct>         <dbl>
...   
      3 Class_0_1     0.776
      3 Class_1_3     0.776
      3 Class_3_9     0.776
      3 Class_9_25   12.4  
      3 Class_25_50  29.4 
...
#

I have a min to max custom ordination "Class_0_1","Class_1_3","Class_3_9", "Class_9_25","Class_25_50","Class_50"

library(dplyr)

my.ds <- read.csv("https://raw.githubusercontent.com/Leprechault/trash/main/test_ants.csv")

my.ds$ClassType <- cut(my.ds$AT,breaks=c(-Inf,1,2.9,8.9,24.9,49.9,Inf),
    right=FALSE,labels=c("Class_0_1","Class_1_3","Class_3_9",
    "Class_9_25","Class_25_50","Class_50"))

my.ds%>% group_by(nest,ClassType)%>% summarize(avg=mean(AT))
# A tibble: 14 x 3
# Groups:   nest [7]
    nest ClassType       avg
   <int> <fct>         <dbl>
 1     2 Class_9_25   19.0  
 2     3 Class_0_1     0.776
 3     3 Class_9_25   12.4  
 4     3 Class_25_50  29.4  
 5     4 Class_1_3     2.42 
 6     4 Class_9_25   17.0  
 7     7 Class_9_25   18.2  
 8     7 Class_25_50  33.1  
 9    10 Class_3_9     5.22 
10    10 Class_9_25   13.6  
11    10 Class_25_50  38.9  
12    10 Class_50    110.   
13  1066 Class_0_1     0.111
14  1067 Class_0_1     0.436

I'd like to repeat the last mean value inside the intermediate absent ClassType by nest. The desirable output for nest 3 for example is:

    nest ClassType       avg
   <int> <fct>         <dbl>
...   
      3 Class_0_1     0.776
      3 Class_1_3     0.776
      3 Class_3_9     0.776
      3 Class_9_25   12.4  
      3 Class_25_50  29.4 
...
#

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

睫毛上残留的泪 2025-02-19 21:44:44

您可以尝试使用完成填充

my.ds %>% 
  group_by(nest,ClassType)%>%
  summarize(avg=mean(AT)) %>%
  complete(ClassType, fill = list(avg = NA)) %>%
  fill(avg, .direction = "downup")

    nest ClassType      avg
   <int> <fct>        <dbl>
 1     2 Class_0_1   19.0  
 2     2 Class_1_3   19.0  
 3     2 Class_3_9   19.0  
 4     2 Class_9_25  19.0  
 5     2 Class_25_50 19.0  
 6     2 Class_50    19.0  
 7     3 Class_0_1    0.776
 8     3 Class_1_3    0.776
 9     3 Class_3_9    0.776
10     3 Class_9_25  12.4 
# … with 32 more rows

You may try using complete and fill

my.ds %>% 
  group_by(nest,ClassType)%>%
  summarize(avg=mean(AT)) %>%
  complete(ClassType, fill = list(avg = NA)) %>%
  fill(avg, .direction = "downup")

    nest ClassType      avg
   <int> <fct>        <dbl>
 1     2 Class_0_1   19.0  
 2     2 Class_1_3   19.0  
 3     2 Class_3_9   19.0  
 4     2 Class_9_25  19.0  
 5     2 Class_25_50 19.0  
 6     2 Class_50    19.0  
 7     3 Class_0_1    0.776
 8     3 Class_1_3    0.776
 9     3 Class_3_9    0.776
10     3 Class_9_25  12.4 
# … with 32 more rows
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文