r - Groupby 一列然后总结另一个值列并计算行数,然后计算 R 中每个列的百分比
问题描述
给定一个小数据集如下:
df <- structure(list(id = 1:8, type = structure(c(1L, 1L, 1L, 2L, 2L,
3L, 3L, 3L), .Label = c("a", "b", "c"), class = "factor"), values = c(360000L,
331715L, 260000L, 164900L, NA, 120000L, 331238L, 629861L)), class = "data.frame", row.names = c(NA,
-8L))
我如何分组type
并总结values
和计算条目数,然后为每个计算value_percent
和?number_percent
type
预期的结果将是这样的:
提前感谢您的帮助。
更新:
value_percent
1
对于@Karthik S 的解决方案,如果数据集中的中文字符全部变为s。
df <- structure(list(物业类型 = structure(c(1L, 3L, 2L, 1L, 3L,
4L, 3L, 3L, 4L, 4L, 4L, 3L), .Label = c("商业/零售", "数据中心",
"写字楼", "综合体"), class = "factor"), 成交总价.万元. = c(360000L,
331715L, 260000L, 164900L, NA, 120000L, 331238L, 629861L, 68800L,
47600L, 804600L, 450000L)), class = "data.frame", row.names = c(NA,
-12L))
代码:
df %>%
group_by(物业类型) %>%
dplyr::summarise(总额占比 = sum(成交总价.万元., na.rm = T)/sum(成交总价.万元., na.rm = T), 笔数占比 = n()/nrow(df))
出去:
解决方案
你可以做 :
library(dplyr)
df %>%
group_by(type) %>%
summarise(value_percent = sum(values, na.rm = TRUE),
count_percent = n()) %>%
mutate(across(ends_with('percent'), prop.table))
# type value_percent count_percent
# <fct> <dbl> <dbl>
#1 a 0.433 0.375
#2 b 0.0750 0.25
#3 c 0.492 0.375
推荐阅读
- xml - 哪个 XPath 工具可以处理大量(50k+)的 xml 行?
- scala - 在 scala 中键入安全的多米诺骨牌
- flutter - 这个冒号和双点在 Flutter 中是什么意思?
- swiftui - SwiftUI:如何让服务器数据显示?
- python - 在更改计数图的条形宽度时,条形的相对位置会从 x 刻度偏移。我们如何解决这个问题?
- list - 为什么我不能在 Erlang 的列表中重写?
- javascript - 用单击的图像替换主图像
- image - 通过使用 SVG 过滤器将噪声应用到具有透明度的图像
- python - Python edhesive 10.4
- javascript - 响应时间 childElementCount 延迟