gpt4 book ai didi

r - dplyr数据透视表

转载 作者:行者123 更新时间:2023-12-01 16:05:03 27 4
gpt4 key购买 nike

我想获得一个具有递减值的数据透视表。

library(dplyr)
library(tidyr)

h<-mtcars %>%
group_by(cyl, gear) %>%
tally() %>%
spread(gear, n, fill = 0)
h<-h%>% add_rownames("index")

i<-mtcars %>%
group_by(cyl, gear) %>%
tally() %>%
spread(cyl, n, fill = 0)

获取值的总和

j<-i%>%
select(-1)%>%
summarise_each(funs(sum))

k<-t(j)
k<- as.data.frame(k)
k<-tbl_df(k)
k<-k%>%add_rownames("index")

l<-left_join(h,k,by="index")
l<-l%>%
select(-1)%>%
arrange(desc(V1))

在 dplyr 中是否有另一种方法可以做同样的事情?

最佳答案

我们按“cyl”、“gear”分组,获取频率计数(tally()),从“long” reshape 为“wide”(使用spreadtidyr), ungroup 删除属性(以前,没有这个也可以工作),使用 mutate 创建 'V1' 作为每行的 sum(使用 rowSums),最后 arrange(order)基于 'V1 中的值的行'.

library(dplyr)
library(tidyr)

mtcars %>%
group_by(cyl, gear) %>%
tally() %>%
spread(gear, n, fill=0) %>%
ungroup() %>%
mutate(V1= rowSums(.[-1])) %>%
arrange(desc(V1))
# cyl 3 4 5 V1
# <dbl> <dbl> <dbl> <dbl> <dbl>
#1 8 12 0 2 14
#2 4 1 8 2 11
#3 6 2 4 1 7

关于r - dplyr数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29720473/

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