【发布时间】:2017-12-07 21:21:11
【问题描述】:
所以我在 R(弗雷明汉心脏研究数据)中有一个数据集,我正在尝试将 BMI 组分配为“体重过轻”、“正常”、“超重”和“肥胖”。
它有超过 11,000 个观察值和 38 个变量/列,所以在这里发布一些数据会有点困难(我希望没有它回答起来不会太麻烦)。
数据集被称为 frm,我试图通过以下方式进行子集化:
frm$BMIGRP <- NA #Creating new variable (this part works and creates a BMIGRP column with all NA values)
frm$BMIGRP[which(as.numeric(frm$BMI) < 18.5)] <- "underweight"
但是,数据集 BMI 变量中有 NA 值(用“.”表示,我也尝试将其更改为 NA)。
当我尝试以这种方式为每个组进行子集化时,它仅将一些体重不足的值分配给“体重不足”,并分配了很多 NA /“。”价值减持为好。然后它告诉我只有 10 个“正常”体重受试者,大约 11000 个属于肥胖类别,这不是真的,因为我可以查看数据集。
如果操作正确,这应该会创建四个组,每个类别都有数百到数千个观察值。但我只有 10 人正常,71 人体重不足,约 11,000 人肥胖。
我只是不确定我哪里出了问题,或者是否有不同的方式我可以创建一个新变量并以相同的方式分配它。非常感谢任何帮助。
我还应该提到,这是我的教授在我们的实验课程中作为示例提供给我们的代码,我基本上是在复制和粘贴它并为我的数据集进行适当的替换。
这是我在本网站上的第一个问题,如果问题不完整或需要提供更多信息,我深表歉意。谢谢!
【问题讨论】:
-
检查 BMI 列的类,class(frm$BMI)。它应该是数字。
-
是的,它不是数字,出于某种原因它是字符。谢谢!
标签: r variables missing-data