我有这个数据框(让我们想象它有数十个变量)
set.seed(505)
df = data.frame(age_group = c(1,2,1,1,1,1,1,2,2,2,2,3,3,2,1,2,3),
score = trunc(runif(17,0,5)),
sex = trunc(runif(17,0,2)),
FO1 = trunc(runif(17,0,2)),
FN2 = trunc(runif(17,0,2)),
AL3 = trunc(runif(17,0,2)),
PM4 = trunc(runif(17,0,2)))
我想创建许多频率表及其百分比。这些表包括每个 FO1 、 FN2 、 AL3 、 PM4 以及每个age_group 和分数变量的组合(没有性别变量)。例如:
table(df$FO1 ,df$age_group)
或table(df$FO1 ,df$score)
一个简单的解决方案可以像这样循环并使用“prop.table()”:
cols1 <- c("FO1", "FN2", "AL3", "PM4")
cols2 <- c("age_group", "score")
for (i in cols1) {
for (j in cols2) {
cat(paste0("i = ", i, ", j = ", j, ":\n"))
print(prop.table(table(df[, i], df[, j])))
cat("\n")
}
}
希望有帮助!
塞缪尔