我有一个大型数据集,我试图根据每个变量有多少观察来删除我的一些变量。例如,我想在我的数据框中删除 n < 3 的任何变量(该变量的总观察值小于 3)。由于 R 可以使用 describe 计算每个变量的观察值,我不能使用该数字来对数据进行子集化,而不是每次我拉入新版本时都必须输入每个变量名称(每个版本都有不同的变量,这些变量的 n 值较低并且有超过40个变量)。非常感谢你的帮助!
例如,我的数据如下所示:
ID Runaway Aggressive Emergency Hospitalization Injury
1 3 NA 4 1 NA
2 NA NA 2 1 NA
3 4 NA 6 2 3
4 1 NA 1 1 NA
我希望能够根据它们的 n 分别为 0 和 1 来放弃“激进”和“伤害”。但是,与其告诉 R 用变量名删除它们,不如告诉 R 将任何变量放在哪里n < 3
(或我选择的任何数字)会更方便,因为我将在多个版本中使用此代码这个数据集。我尝试过使用列号(这比写出来要好),但是当我必须处理describe()
数据时,找出哪些变量的 n 值较低,然后删除 28 个变量或subset()
围绕它们,这仍然很乏味。这可行,但它很麻烦......
UIRCorrelation <- UIRKidUnique61[c(28, 30, 32, 34:38, 42, 54:74)]
出于某种原因,我的示例在编辑和保存时看起来不同,因此我还包含了它的图像。对不起。这是我第一次使用堆栈溢出来提问。实际上,我花了很多时间在谷歌上搜索,但找不到与 n 相关的答案。
此行无效:DF[, sapply(DF, function(col) length(na.omit(col))) > 4]