R:使用观察次数丢弃变量

时间:2018-06-14 07:19:47

标签: r subset describe

我有一个大型数据集,我试图根据每个观察的数量来删除一些变量。例如,我想删除我的数据框中的任何变量,其中n< 3(该变量的总观测值小于3)。由于R可以使用describe计算每个变量的观察值,因此我不能使用该数字来对数据进行子集,而不是每次我引入新版本时都必须键入每个变量名称(每个版本都有不同的变量,这些变量将具有低n的并且有超过40个变量)。非常感谢你的帮助!

例如,我的数据如下所示:

Target

我希望能够根据他们的n分别为0和1来放弃“激进”和“伤害”。但是,如果有可能告诉R删除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 (或我选择的任何数字)的任何变量,而不是告诉R按变量名删除它们会更方便,因为我将使用此此数据集的多个版本的代码。我已经尝试过使用列号(比编写它们更好)但是当我需要n < 3数据时,找出哪些变量的n值较低,然后删除28个变量或{{1},这仍然非常繁琐。 } 在他们旁边。 这有效,但很麻烦...

describe()

出于某种原因,我的例子在编辑时与我保存的时候看起来不同,所以我也包含了它的图像。抱歉。这是我第一次使用堆栈溢出来提问。我实际上花了很多时间在Google上搜索,但找不到与n相关的答案。

这一行不起作用:DF [,sapply(DF,函数(col)长度(na.omit(col)))&gt; 4]

2 个答案:

答案 0 :(得分:2)

DF是您的数据框

DF[, sapply(DF, function(col) length(na.omit(col))) > 4]

答案 1 :(得分:0)

这个功能起到了作用:

valid <- function(x) {sum(!is.na(x))}

N <- apply(UIRCorrelation,2,valid) 

UIRCorrelation2 <- UIRCorrelation[N > 3]
相关问题