如何在 R 中获取表格,包括计数、相对频率和累积频率?
Posted
技术标签:
【中文标题】如何在 R 中获取表格,包括计数、相对频率和累积频率?【英文标题】:How to get table in R, including count, relative frequencies, and cumulative frequencies? 【发布时间】:2020-01-14 14:02:59 【问题描述】:我已经使用 R Studio 多年了,而且比任何其他软件都更频繁,但现在我打算用 R 教授统计学,我意识到使用 STATA 等其他软件可以更简单地完成一些任务。
有没有一种简单的方法可以在 R 中获取频率表(包括计数、百分比和累积频率),就像我们在 STATA 中输入 tab [variable]
一样?
我遇到了这个 tidyverse 解决方案:
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 个不同的包。
【问题讨论】:
“但这很明显,对于本科生来说太复杂了” 你有数据支持吗?它读起来就像一个人会做数学......如果他们能处理数学,他们应该能够处理你的mutate
调用中的操作
当然,在某些时候你会明白这一点,我们也很自然地这样做,因为我们知道语法。但是,如果您在非常基础的入门级别教授统计数据,那么我相信我们都会同意tab
比这个 dplyr 解决方案更容易和方便,不是吗?
我不确定该特定任务是否有基本功能。尽管如此,我认为你正在接近“Stata-R”辩论错误。 tidyverse 解决方案并不复杂,tidyverse 被设计为易于使用和易于阅读。您提供的代码非常直观,一个人(lundergrad 学生)可以理解正在发生的事情并将这些知识用于许多其他问题。假设您有一个更大的数据集,并且您想要相同的结果但对多个变量进行分组:从概念上讲,您只需对 group_by 函数进行少量更改。这是您从 R 中受益的地方。
您可以使用count(var1)
从代码中删除一行
好吧,这一切都是正确的,尽快学习这一切将在以后非常方便,因为从那里将其应用于另一个问题或数据集的步骤显然会更小。但我仍然认为这需要逐步学习:在使用 dplyr 之前,需要了解如何设置工作目录(等等)。因此,如果您想了解按下Ctrl + Enter
时代码是如何产生输出的,您将需要一个非常简短且易于掌握的代码。仅作记录:我并不是说 STATA 更好。
【参考方案1】:
我不同意你关于本科生无法理解的说法。我不想将这个问题纳入教学策略,如果您认为 R 不适合您的课程水平,是否应该使用 R。
您可以为他们提供此功能,他们不必理解(就像他们不必理解 STATA 中的功能一样)。
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")
),这是你的一个班轮:
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 教程)分配为家庭作业/课堂的一部分,以便学生熟悉。
如果我们放弃所有假设,WHATEVER SOFTWARE IS EASIER 的论点很弱,我需要知道 where 到 click 的 任何软件的特定版本...
【讨论】:
以上是关于如何在 R 中获取表格,包括计数、相对频率和累积频率?的主要内容,如果未能解决你的问题,请参考以下文章