我是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)
}
非常感谢
答案 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
这只适用于所有变量都是二进制
的情况