gpt4 book ai didi

r - 在旁边总结变量

转载 作者:行者123 更新时间:2023-12-02 07:59:35 25 4
gpt4 key购买 nike

我正在为我的问题寻找解决方案。我只能通过手动重新排列来解决它。

Example code:

library(dplyr)

set.seed(1)
Data <- data.frame(
W = sample(1:10),
X = sample(1:10),
Y = sample(c("yes", "no"), 10, replace = TRUE),
Z = sample(c("cat", "dog"), 10, replace = TRUE)
)
#
summarized <- Data %>% group_by(Z) %>% summarise_if(is.numeric,funs(mean,median),na.rm=T)

print(Data)

enter image description here

我希望输出如下所示,每个函数应用于第一个列,然后每个函数应用于第二个列,依此类推。我的代码反之亦然。

当然我可以重新排列列,但这不是数据科学的目的。我有数百个列,想应用多个函数。

这就是我想要的:

summarized <- summarized[,c(1,2,4,3,5)] #best solution yet

enter image description here

有没有我遗漏的论点?我敢打赌有一个简单的解决方案或其他功能可以完成这项工作。伙计们,提前谢谢!

最佳答案

一个选择是使用足够的 select_helpers 进行后处理

library(dplyr)
summarized %>%
select(Z, starts_with('W'), everything())
# A tibble: 2 x 5
# Z W_mean W_median X_mean X_median
# <fct> <dbl> <dbl> <dbl> <dbl>
#1 cat 5.25 5.5 3.75 3.5
#2 dog 5.67 5.5 6.67 7

如果有 100 列,一种方法是获取列名的子字符串,并排序

library(stringr)
summarized %>%
select(Z, order(str_remove(names(.), "_.*")))
# A tibble: 2 x 5
# Z W_mean W_median X_mean X_median
# <fct> <dbl> <dbl> <dbl> <dbl>
#1 cat 5.25 5.5 3.75 3.5
#2 dog 5.67 5.5 6.67 7

关于r - 在旁边总结变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59251881/

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