首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算行/列的%(在数据格式中)

如何计算行/列的%(在数据格式中)
EN

Stack Overflow用户
提问于 2016-10-17 15:00:39
回答 2查看 94关注 0票数 0

我有这个数据,我想计算每一行的% (例如)。我希望在相同的数据中转换此数据,但只用于%

就像这张照片:

我该怎么做呢?

数据:

代码语言:javascript
运行
复制
dat <- data.frame(
  county = c("FRANCIA", "GRECIA", "ITALIA"),
  `310` = c(73, 165, 347),
  `320` = c(13, 80, 118),
  `330` = c(10, 57, 94),
  `340` = c(28, 116, 177),
  check.names = FALSE
)
EN

回答 2

Stack Overflow用户

发布于 2016-10-17 15:22:38

如果您特别希望包含%标志,请从看门人包中尝试adorn_crosstab()

代码语言:javascript
运行
复制
library(janitor)
dat %>%
  adorn_crosstab(show_n = FALSE, digits = 0)

   county 310 320 330 340
1 FRANCIA 59% 10%  8% 23%
2  GRECIA 39% 19% 14% 28%
3  ITALIA 47% 16% 13% 24%

如果要将比例保留为numeric-class,请参见Calculate row-wise proportions

(免责声明:我是这个函数的作者,但我认为这是达到你想要的结果的最快方法)

票数 0
EN

Stack Overflow用户

发布于 2016-10-17 15:47:48

基本包,使用prop.table。首先,我们将数据帧转换为矩阵。然后返回到一个数据帧,使用cbind还原列国家。

代码语言:javascript
运行
复制
cbind(Country = dat[, 1], as.data.frame(prop.table(as.matrix(dat[, 2:5]), 1)))

输出:

代码语言:javascript
运行
复制
  Country       310       320        330       340
1 FRANCIA 0.5887097 0.1048387 0.08064516 0.2258065
2  GRECIA 0.3947368 0.1913876 0.13636364 0.2775120
3  ITALIA 0.4714674 0.1603261 0.12771739 0.2404891
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40089745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档