gpt4 book ai didi

r - 如何在R中获取表格,包括计数、相对频率和累积频率?

转载 作者:行者123 更新时间:2023-12-04 10:31:25 25 4
gpt4 key购买 nike

多年来,我一直使用 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 个不同的包。

最佳答案

我不同意你关于本科生无法理解的说法。我不想将这个问题纳入教学策略,以及如果您认为 R 不适合您的类(class)水平,您是否应该使用 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)。请注意,此答案只会按一个因素分组(这是您的问题)。

编辑

one needs to understand how to set the working directory (etc.)

不完全正确,如果您使用的是 Rstudio,则可以通过单击文件夹手动导入数据集。如果您想使用 R 教授统计信息(我认为您绝对应该这样做),您应该至少拥有一类最基本的东西(是的,包括工作目录、如何调用 library(...) 和基本功能)。您可以分配大量资源(书籍、YouTube 教程)作为家庭作业/类(class)的一部分,以便学生熟悉。如果我们放弃所有假设,无论什么软件都更容易的论点都是微不足道的,我需要知道如何在哪里点击任何软件的特定版本...

关于r - 如何在R中获取表格,包括计数、相对频率和累积频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57911014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com