常常在问卷数据分析中,我们需要根据多个分类变量,比如性别,年龄,职业,学历等,计算在某一个目标变量,如工资水平(分为多个等级)上 的频数,得到一个多维的交叉列联表,从而方便了解这些在变量(年龄,职业,学历)在目标变量的分布水平。
得到结果如下图所示。

代码说明
#导入数据
library(readxl)
da <- read_excel("da.xlsx", sheet = "Sheet1")
Da <- data.frame(da[,c(2:15)])
Da[which(Da[,12]>3),12] <- 3
#下面这个让数据框中的所有变量变成因子,但是前提要求Da只为dataframe类型
for (i in colnames(Da)){
Da[,i]<-as.factor(Da[,i])
}
t=0
#建立循环,由于table每次只能得到一个交叉表,所以想法就是通过循环把
#所有其它变量和目标变量的交叉结果保存到数据框中,再合并得到最终的
for (i in colnames(Da)){
x1=table(Da[,i],Da[,12],dnn =c(colnames(Da[i]),"kids"))
table1 <- as.data.frame(matrix(x1[1:length(x1)],nrow = length(row.names(x1)), ncol = length(colnames(x1))))
colnames(table1) <- colnames(x1)
y<- rownames(x1)
x <- rep(colnames(Da[i]),length(row.names(table1)))
das

在问卷数据分析中,针对性别、年龄、职业和学历等多个分类变量,利用R语言的table函数计算目标变量(如工资等级)上的频数,形成多维交叉列联表,以揭示不同变量在目标变量上的分布情况。
最低0.47元/天 解锁文章
1458

被折叠的 条评论
为什么被折叠?



