如何以简单的方式使用特定变量组合创建许多带有百分比列的频率表?

问题描述 投票:0回答:1

我有这个数据框(让我们想象它有数十个变量)

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)

r dataframe frequency percentage
1个回答
1
投票

一个简单的解决方案可以像这样循环并使用“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")
  }
}

希望有帮助!
塞缪尔

© www.soinside.com 2019 - 2024. All rights reserved.