我现在使用R Studio已经很多年了,比任何其他软件都频繁,但是现在我很想用R来教统计学,我意识到有些任务使用STATA这样的软件更简单。
有没有一种简单的方法可以得到R中的频率表(包括计数、百分比和累积频率),就像我们在STATA中键入tab [variable]一样?
我偶然发现了一个潮汐的解决方案:
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个不同的软件包。
发布于 2019-09-12 16:52:09
我不同意你关于大学毕业生不能理解的说法。我不想把这个问题纳入教学策略,如果你认为这不适合你的课程水平,你是否应该使用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教程),你可以分配作为家庭主妇/部分班级,所以学生变得熟悉。如果我们放弃所有假设,我需要知道如何点击任何软件的特定版本。
https://stackoverflow.com/questions/57911014
复制相似问题