如何计算R中两个分类变量的比例
How to calculate the proportion of two categorical variables in R
目前我正在写硕士论文。我的大学向我提供了学生数据,其中包含多个变量,例如年龄、性别、学科、教师、访问过的课程、收到的成绩、学生流失情况等等。我的任务是分析这些数据,以预测哪个学生会流失以及哪个学生会获得学位。在这样做之前,我想尝试进行探索性数据分析。目前我想计算两个分类变量的比例:主题和学生是否流失。
我为要计算的统计数据创建了一个简单示例:
Subject_Churn_df <- data.frame(Subject = c("Math", "Engineering", "IT", "Math", "IT", "IT", "Engineering"),
Churn = c("Yes", "Yes", "No", "No", "Yes", "Yes", "No"))
现在我想确定哪个主题流失了多少比例。
我尝试了以下代码:
Subject_Churn_df %>%
select(Subject, Churn) %>%
table() %>%
prop.table()
但结果我得到
Churn
Subject No Yes
Engineering 0.1428571 0.1428571
IT 0.1428571 0.2857143
Math 0.1428571 0.1428571
在这种情况下,比例是通过考虑整个样本来计算的。但是,我想知道每个主题的流失率,例如
Engineering 0.5
IT 0.333333
Math: 0.5
我会感激每一个tip/solution。非常感谢。
虽然这在 Stack Overflow 上可能更好,但您的具体问题是您没有在 proportions
调用中将正确的参数传递给 margin
,因此您的比例超过了整个 table。由于对 table
的调用将主题放在行中,因此您希望将 $1$ 传递给 margin
,如下所示:
Subject_Churn_df <- data.frame(Subject = c("Math", "Engineering", "IT", "Math", "IT", "IT", "Engineering"),
Churn = c("Yes", "Yes", "No", "No", "Yes", "Yes", "No"))
proportions(table(Subject_Churn_df), margin = 1L)
这导致:
Churn
Subject No Yes
Engineering 0.5000000 0.5000000
IT 0.3333333 0.6666667
Math 0.5000000 0.5000000
我相信你想要什么。
目前我正在写硕士论文。我的大学向我提供了学生数据,其中包含多个变量,例如年龄、性别、学科、教师、访问过的课程、收到的成绩、学生流失情况等等。我的任务是分析这些数据,以预测哪个学生会流失以及哪个学生会获得学位。在这样做之前,我想尝试进行探索性数据分析。目前我想计算两个分类变量的比例:主题和学生是否流失。
我为要计算的统计数据创建了一个简单示例:
Subject_Churn_df <- data.frame(Subject = c("Math", "Engineering", "IT", "Math", "IT", "IT", "Engineering"),
Churn = c("Yes", "Yes", "No", "No", "Yes", "Yes", "No"))
现在我想确定哪个主题流失了多少比例。
我尝试了以下代码:
Subject_Churn_df %>%
select(Subject, Churn) %>%
table() %>%
prop.table()
但结果我得到
Churn
Subject No Yes
Engineering 0.1428571 0.1428571
IT 0.1428571 0.2857143
Math 0.1428571 0.1428571
在这种情况下,比例是通过考虑整个样本来计算的。但是,我想知道每个主题的流失率,例如
Engineering 0.5
IT 0.333333
Math: 0.5
我会感激每一个tip/solution。非常感谢。
虽然这在 Stack Overflow 上可能更好,但您的具体问题是您没有在 proportions
调用中将正确的参数传递给 margin
,因此您的比例超过了整个 table。由于对 table
的调用将主题放在行中,因此您希望将 $1$ 传递给 margin
,如下所示:
Subject_Churn_df <- data.frame(Subject = c("Math", "Engineering", "IT", "Math", "IT", "IT", "Engineering"),
Churn = c("Yes", "Yes", "No", "No", "Yes", "Yes", "No"))
proportions(table(Subject_Churn_df), margin = 1L)
这导致:
Churn
Subject No Yes
Engineering 0.5000000 0.5000000
IT 0.3333333 0.6666667
Math 0.5000000 0.5000000
我相信你想要什么。