gpt4 book ai didi

r - 为多列单独汇总数据表

转载 作者:行者123 更新时间:2023-12-05 06:35:49 25 4
gpt4 key购买 nike

我正在尝试尽可能自动汇总多列数据,而不是为每一列单独编写代码。我想总结一下:

Patch    Size       Achmil  Aciarv   Aegpod Agrcap
A 10 0 1 1 0
B 2 1 0 0 0
C 2 1 0 0 0
D 2 1 0 0 0

进入这个

Species   Presence      MaxSize    MeanSize    Count
Achmil 0 10 10 1
Achmil 1 2 2 3
Aciarv 0 2 2 3
Aciarv 1 10 10 1

我知道我可以单独运行 group_by 并对每一列进行汇总

achmil<-group_by(LimitArea, Achmil) %>%
summarise(SumA=mean(Size))

但是有没有办法使用某种循环为每个列的每个存在和不存在自动运行它?任何帮助表示赞赏。

最佳答案

也许我们需要将收集成长格式,然后进行总结

library(tidyverse)
gather(df1, Species, Presence, Achmil:Agrcap) %>%
group_by(Species, Presence) %>%
summarise( MaxSize = max(Size), MeanSize = mean(Size), Count = n())
# A tibble: 7 x 5
# Groups: Species [?]
# Species Presence MaxSize MeanSize Count
# <chr> <int> <dbl> <dbl> <int>
#1 Achmil 0 10.0 10.0 1
#2 Achmil 1 2.00 2.00 3
#3 Aciarv 0 2.00 2.00 3
#4 Aciarv 1 10.0 10.0 1
#5 Aegpod 0 2.00 2.00 3
#6 Aegpod 1 10.0 10.0 1
#7 Agrcap 0 10.0 4.00 4

在较新版本的dplyr/tidyr中,我们可以使用pivot_longer

df1 %>% 
pivot_longer(cols = Achmil:Agrcap, names_to = "Species",
values_to = "Presence") %>%
group_by(Species, Presence) %>%
summarise(MaxSize = max(Size), MeanSize = mean(Size), Count = n())

关于r - 为多列单独汇总数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49488662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com