首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中得到表,包括计数、相对频率和累积频率?

如何在R中得到表,包括计数、相对频率和累积频率?
EN

Stack Overflow用户
提问于 2019-09-12 16:28:30
回答 1查看 761关注 0票数 3

我现在使用R Studio已经很多年了,比任何其他软件都频繁,但是现在我很想用R来教统计学,我意识到有些任务使用STATA这样的软件更简单。

有没有一种简单的方法可以得到R中的频率表(包括计数、百分比和累积频率),就像我们在STATA中键入tab [variable]一样?

我偶然发现了一个潮汐的解决方案:

代码语言:javascript
复制
dataset <- tribble(
           ~var1, ~var2, ~var3, ~var4, ~var5,
           "1",   "1",   "1",   "a",   "d",
           "2",   "2",   "2",   "b",   "e",
           "3",   "3",   "3",   "c",   "f")

dataset %>%
      group_by(var1) %>%
      summarise(n = n()) %>%
      mutate(totalN = (cumsum(n)),
             percent = round((n / sum(n)), 3),
             cumpercent = round(cumsum(freq = n / sum(n)),3))

但是,很明显,这对于大学毕业生的教学来说是非常复杂的。难道没有更简单的方法吗,甚至可能是一个基本的R解?理想情况下,我希望有一行代码,我不需要先安装5-10个不同的软件包。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-12 16:52:09

我不同意你关于大学毕业生不能理解的说法。我不想把这个问题纳入教学策略,如果你认为这不适合你的课程水平,你是否应该使用R。

您可以为他们提供这个函数,他们不需要理解这个函数(就像他们不需要理解STATA中的函数一样)。

代码语言:javascript
复制
library(dplyr)
tab <- function(dataset, var){

  dataset %>%
    # embrace var to be able to call it with any grouping factor
    group_by({{var}}) %>% 
    summarise(n=n()) %>%
    mutate(totalN = cumsum(n),
           percent = n / sum(n),
           cumpercent = cumsum(n / sum(n)))

}

然后(如果您是source("tab.R")),这里是您的一个班轮:

代码语言:javascript
复制
tab(dataset, var1)
# A tibble: 3 x 5
  var1      n totalN percent cumpercent
  <chr> <int>  <int>   <dbl>      <dbl>
1 1         1      1   0.333      0.333
2 2         1      2   0.333      0.667
3 3         1      3   0.333      1  

你可以试试tab(dataset, var2)。请注意,这个答案将只按一个因素分组(这是您的问题)。

编辑

我们需要了解如何设置工作目录(等等)。

不完全正确,如果使用的是Rstudio,则可以通过单击文件夹手动导入数据集。如果您想使用R教授统计信息(我认为您肯定应该这样做),那么您至少应该有一种最小的东西(是的,包括工作目录、如何调用library(...)和基本函数)。有大量的资源(书籍,YouTube教程),你可以分配作为家庭主妇/部分班级,所以学生变得熟悉。如果我们放弃所有假设,我需要知道如何点击任何软件的特定版本。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57911014

复制
相关文章

相似问题

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