【问题标题】:R: Dropping variables using number of observationsR:使用观察次数删除变量
【发布时间】:2018-06-17 00:58:07
【问题描述】:

我有一个大型数据集,我试图根据每个变量的观察次数删除一些变量。例如,我想在我的数据框中删除 n

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

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]

【问题讨论】:

  • 到目前为止,您尝试了什么?请编辑您的问题并包含Minimal, Complete, and Verifiable Example
  • 除了回答了您的问题。请考虑:向 google 询问之前,请考虑这个等式 (example data + desired output) &gt; long text

标签: r subset describe


【解决方案1】:

DF 是您的数据框

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

【讨论】:

    【解决方案2】:

    这个函数成功了:

    valid <- function(x) {sum(!is.na(x))}
    
    N <- apply(UIRCorrelation,2,valid) 
    
    UIRCorrelation2 <- UIRCorrelation[N > 3]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多