循环变量以生成百分比表

时间:2017-01-13 16:16:51

标签: r

我是R的新手,非常感谢任何建议。我来自STATA背景,因此学习在R中思考。我正在尝试为20个二进制变量生成百分比表。我试过一个for循环,但不确定我哪里出错,因为没有警告信息。

for (i in 1:ncol(MAAS1r[varbinary])) {
  varprop<- varbinary[i]
  my.table<-table(MAAS1r[varprop])
  my.prop<-prop.table(my.table)
  cbind(my.table, my.prop)
}

非常感谢

1 个答案:

答案 0 :(得分:0)

我用一个从mtcars中提取的例子做了一个

这是两个二进制(0或1)变量,称为VS和AM

mtcarsBivar<- mtcars[,c(8,9)]

获取列的名称:

varbinary <- colnames(mtcarsBivar)

使用dplyr执行此操作:

library(dplyr)

制作一个空列表以填充

Binary_table <- list()

现在用循环填充它:

for (i in 1:length(varbinary)) {
  Binary_table[[i]] <- summarise(mtcarsBivar, percent_1 = sum(mtcarsBivar[,1] == 1)/nrow(mtcarsBivar))  
}

将其转换为数据框

Binary_table <- do.call("cbind", Binary_table)

为列指定varbinary的名称     colnames(Binary_table)&lt; - varbinary

这只适用于所有变量都是二进制

的情况