R 分组并使用删除的重复项进行汇总
我们可以使用以下数据帧作为示例:R 分组并使用删除的重复项进行汇总,r,R,我们可以使用以下数据帧作为示例: Cases <- c("Siddhartha", "Siddhartha", "Siddhartha", "Paul", "Paul", "Paul", "Hannah") Procedures <- c("1", "1", "2", "3", "3", "4", "1") (df <- data.frame(Cases, Procedures)) Cases Procedures 1 Siddhartha
Cases <- c("Siddhartha", "Siddhartha", "Siddhartha", "Paul", "Paul", "Paul", "Hannah")
Procedures <- c("1", "1", "2", "3", "3", "4", "1")
(df <- data.frame(Cases, Procedures))
Cases Procedures
1 Siddhartha 1
2 Siddhartha 1
3 Siddhartha 2
4 Paul 3
5 Paul 3
6 Paul 4
7 Hannah 1
Cases您要计算每个过程的不同案例数
。您可以使用n_distinct
来计算。您还可以使用curly-curly操作符({{}
),它同时完成enquo
和的工作代码>在一起
library(dplyr)
library(rlang)
Sum_Group <- function(df, variable) {
df %>%
group_by({{variable}}) %>%
summarise(Number = n_distinct(Cases)) %>%
mutate(Prozent = round((Number/sum(Number)*100)))
}
Sum_Group(df, Procedures)
# A tibble: 4 x 3
# Procedures Number Prozent
# <chr> <int> <dbl>
#1 1 2 40
#2 2 1 20
#3 3 1 20
#4 4 1 20
库(dplyr)
图书馆(rlang)
总组%
分组依据({{variable}})%>%
总结(数量=n_不同(案例))%>%
变异(比例=四舍五入((数字/总和(数字)*100)))
}
Sum_组(df,程序)
#一个tibble:4x3
#程序数比例
#
#1 1 2 40
#2 2 1 20
#3 3 1 20
#4 4 1 20
如果我还想按位置排序,需要添加什么。我试着用pivot_加宽,但没有显示想要的结果。我试过:``df%>%count(位置、过程、n_distinct(Case))%%>%pivot\u加宽(name\u from=Location、values\u from=n、values\u fill=list(n=0))``但里面没有不同的大小写。在你的例子中没有位置
,所以我不明白你在问什么。最好问一个包含所有细节的新问题。我们在这里总结的情况是,即使数据帧中存在Location
,输出中仍然不存在。是否要将位置
添加到分组人
?
# A tibble: 4 x 3
Procedures Number Prozent
<fct> <int> <dbl>
1 1 3 43
2 2 1 14
3 3 2 29
4 4 1 14
Procedures Number Prozent
<fct> <int> <dbl>
1 1 2 40
2 2 1 20
3 3 1 20
4 4 1 20
library(dplyr)
library(rlang)
Sum_Group <- function(df, variable) {
df %>%
group_by({{variable}}) %>%
summarise(Number = n_distinct(Cases)) %>%
mutate(Prozent = round((Number/sum(Number)*100)))
}
Sum_Group(df, Procedures)
# A tibble: 4 x 3
# Procedures Number Prozent
# <chr> <int> <dbl>
#1 1 2 40
#2 2 1 20
#3 3 1 20
#4 4 1 20