Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当一个变量=0时,如何在R中生成多列表?_R_Dataframe - Fatal编程技术网

当一个变量=0时,如何在R中生成多列表?

当一个变量=0时,如何在R中生成多列表?,r,dataframe,R,Dataframe,我试图制作一个表,评估两个变量,如下所示: Diabetes No_Diabetes 1 0 12 2 5 234 3 7 182 4 3 57 通过使用tablex,我可以得到本例中每个单独列的频率,糖尿病或非糖尿病: tabledata$bmi_猫[糖尿病==0] tabledata$bmi_猫[糖尿病==1] 但由于在本例中1=0,当我尝试将两个表放入一个数据帧

我试图制作一个表,评估两个变量,如下所示:

  Diabetes No_Diabetes
1        0          12
2        5         234
3        7         182
4        3          57
通过使用tablex,我可以得到本例中每个单独列的频率,糖尿病或非糖尿病:

tabledata$bmi_猫[糖尿病==0]

tabledata$bmi_猫[糖尿病==1]

但由于在本例中1=0,当我尝试将两个表放入一个数据帧时,我收到一条错误消息,指出它们不能组合,因为它们的长度不同


我屈从于使用for循环来生成上面的原始数据帧,但必须有一种比编写8个单独的循环更简单的方法,当表如此高效地执行此操作时。有没有关于如何组合这两个表的建议,也许可以找到在第二个表中显示1=0的方法?谢谢

原则上,您只需运行以下程序即可获得您的表格:

table(data$bmi_cat,DIABETES)
虽然没有数据很难解决,但糖尿病似乎是一个二元向量。 下面是一个尝试,从您共享的内容中对问题进行反向工程:

temp <- read.table(text="Diabetes No_Diabetes
0          12
5         234
7         182
3          57",header=TRUE)

temp
似乎我们已经适当地设置了数据,现在让我们将其组合到data.frame中,并在此基础上运行表:


请提供一些数据。根据数据表BMI_cat,糖尿病是一个猜测。不是一个循环而是八个循环?真正地怎样为什么?如果没有数据,很难说这里发生了什么,请仔细阅读如何做出决定。
table(data$bmi_cat,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(bmi_cat[DIABETES==0])
table(bmi_cat[DIABETES==1])
data <- data.frame(bmi_cat,DIABETES)
table(data)
table(bmi_cat,DIABETES)