当一个变量=0时,如何在R中创建多列table?
How can I make a multicolumn table in R when one variable=0?
我正在尝试制作一个 table 来评估两个变量,如下所示:
Diabetes No_Diabetes
1 0 12
2 5 234
3 7 182
4 3 57
通过使用 table(x),我可以获得每个列的这些频率(在本例中,糖尿病或 No_Diabetes):
table(data$bmi_cat[DIABETES==0])
1 2 3 4
12 234 182 57
table(data$bmi_cat[DIABETES==1])
2 3 4
5 7 3
但是因为在这个例子中 1 = 0,当我试图将两个 table 放入一个数据帧时,我收到一条错误消息,指出它们不能合并,因为它们的长度不同。
我屈服于使用 for 循环来制作上面的原始数据框,但是当 "table" 如此有效地做到这一点时,必须有一种比编写 8 个单独的循环更简单的方法。关于如何组合两个 table 的任何建议,也许是通过找到在第二个 table 中显示 1 = 0 的方法?谢谢!!!
原则上,您只需 运行 以下内容即可获得您的 table:
table(data$bmi_cat,DIABETES)
虽然没有数据很难求解,但DIABETES
似乎是一个二元向量。
所以这里是尝试从你分享的内容中逆向工程问题:
temp <- read.table(text="Diabetes No_Diabetes
0 12
5 234
7 182
3 57",header=TRUE)
temp
所以让我们创建您正在使用的两个变量。
bmi_cat <- rep(1:4,apply(temp,1,sum))
DIABETES <- rep(rep(c(0,1),4),c(t(temp)))
让我们重新生成您拥有的 table:
table(bmi_cat[DIABETES==0])
table(bmi_cat[DIABETES==1])
看来我们已经适当地设置了data
,现在让我们将它组合成一个data.frame
,然后运行 table
:
data <- data.frame(bmi_cat,DIABETES)
table(data)
实际上你在这里不需要数据框,只需以下即可:
table(bmi_cat,DIABETES)
我正在尝试制作一个 table 来评估两个变量,如下所示:
Diabetes No_Diabetes
1 0 12
2 5 234
3 7 182
4 3 57
通过使用 table(x),我可以获得每个列的这些频率(在本例中,糖尿病或 No_Diabetes):
table(data$bmi_cat[DIABETES==0])
1 2 3 4
12 234 182 57
table(data$bmi_cat[DIABETES==1])
2 3 4
5 7 3
但是因为在这个例子中 1 = 0,当我试图将两个 table 放入一个数据帧时,我收到一条错误消息,指出它们不能合并,因为它们的长度不同。
我屈服于使用 for 循环来制作上面的原始数据框,但是当 "table" 如此有效地做到这一点时,必须有一种比编写 8 个单独的循环更简单的方法。关于如何组合两个 table 的任何建议,也许是通过找到在第二个 table 中显示 1 = 0 的方法?谢谢!!!
原则上,您只需 运行 以下内容即可获得您的 table:
table(data$bmi_cat,DIABETES)
虽然没有数据很难求解,但DIABETES
似乎是一个二元向量。
所以这里是尝试从你分享的内容中逆向工程问题:
temp <- read.table(text="Diabetes No_Diabetes
0 12
5 234
7 182
3 57",header=TRUE)
temp
所以让我们创建您正在使用的两个变量。
bmi_cat <- rep(1:4,apply(temp,1,sum))
DIABETES <- rep(rep(c(0,1),4),c(t(temp)))
让我们重新生成您拥有的 table:
table(bmi_cat[DIABETES==0])
table(bmi_cat[DIABETES==1])
看来我们已经适当地设置了data
,现在让我们将它组合成一个data.frame
,然后运行 table
:
data <- data.frame(bmi_cat,DIABETES)
table(data)
实际上你在这里不需要数据框,只需以下即可:
table(bmi_cat,DIABETES)