按变量将组_翻转为列,将列翻转为行dplyr
提前感谢您的回复!我在Rstudio中工作,试图创建我的客户需要的特定表格格式。具体地说,我想将每个度量显示为一行,并将group_按变量显示为一列,在本例中为应用程序类型。我使用group_by按应用程序类型合并所有数据,并使用summarise函数创建新变量按变量将组_翻转为列,将列翻转为行dplyr,r,dplyr,format,R,Dplyr,Format,提前感谢您的回复!我在Rstudio中工作,试图创建我的客户需要的特定表格格式。具体地说,我想将每个度量显示为一行,并将group_按变量显示为一列,在本例中为应用程序类型。我使用group_by按应用程序类型合并所有数据,并使用summarise函数创建新变量 subs <- data.frame( App_type = c('A','A','A','B','B','B','C','C','C','C'), Has_error = c(1,1,1,0,0,1,1,0,1,1),
subs <- data.frame(
App_type = c('A','A','A','B','B','B','C','C','C','C'),
Has_error = c(1,1,1,0,0,1,1,0,1,1),
Has_critical_error = c(1,0,1,0,0,1,0,0,1,1)
)
在重塑为“long”之后,我们可以转向“wide”格式,然后将列名“name”更改为rowname
library(dplyr)
library(tidyr)
library(tibble)
subs %>%
group_by(App_type) %>%
summarise(
total_sub = n(),
total_error = sum(Has_error),
total_critical_error = sum(Has_critical_error)) %>%
pivot_longer(cols = -App_type) %>%
pivot_wider(names_from = App_type, values_from = value) %>%
mutate(TOTAL = A + B + C) %>%
column_to_rownames("name")
# A B C TOTAL
#total_sub 3 3 4 10
#total_error 3 1 3 7
#total_critical_error 2 1 2 5
或者另一个选项是从
data.table
library(data.table)
data.table::transpose(setDT(out), make.names = 'App_type',
keep.names = 'name')[, TOTAL := A + B + C][]
其中,out
是OP的汇总输出
out <- subs %>%
group_by(App_type) %>%
summarise(
total_sub = n(),
total_error = sum(Has_error),
total_critical_error = sum(Has_critical_error)
)
在重塑为“long”之后,我们可以转向“wide”格式,然后将列名“name”更改为rowname
library(dplyr)
library(tidyr)
library(tibble)
subs %>%
group_by(App_type) %>%
summarise(
total_sub = n(),
total_error = sum(Has_error),
total_critical_error = sum(Has_critical_error)) %>%
pivot_longer(cols = -App_type) %>%
pivot_wider(names_from = App_type, values_from = value) %>%
mutate(TOTAL = A + B + C) %>%
column_to_rownames("name")
# A B C TOTAL
#total_sub 3 3 4 10
#total_error 3 1 3 7
#total_critical_error 2 1 2 5
或者另一个选项是从
data.table
library(data.table)
data.table::transpose(setDT(out), make.names = 'App_type',
keep.names = 'name')[, TOTAL := A + B + C][]
其中,out
是OP的汇总输出
out <- subs %>%
group_by(App_type) %>%
summarise(
total_sub = n(),
total_error = sum(Has_error),
total_critical_error = sum(Has_critical_error)
)
非常感谢你!这正是我需要的。非常感谢!这正是我需要的。