【问题标题】:Subset dataframe based on statistical range of each column基于每列统计范围的子集数据框
【发布时间】:2013-12-19 21:51:01
【问题描述】:

我想通过仅选择超出特定范围的列来对数据框进行子集化。 IE,我想单独评估每列的 max-min 并仅选择范围大于给定值的列。例如,给定以下简单的数据框,我想创建一个子集数据框,它只包含范围 > 99 的列。(列 b 和 c。)

d <- data.frame(a=seq(0,10,1),b=seq(0,100,10),c=seq(0,200,20))

我曾尝试在此处修改示例:Subset a dataframe based on a single condition applied to multiple columns,但没有运气。我确定我错过了一些简单的东西。

【问题讨论】:

    标签: r subset apply sapply


    【解决方案1】:

    您可以使用sapply() 将函数应用于d 的每一列,然后计算列值范围的差异。然后将其与 99 进行比较。结果您将得到 TRUE 或 FALSE,然后将其用于子集列。

    d[,sapply(d,function(x) diff(range(x))>99)]
    

    【讨论】:

    • 非常感谢!谢谢!
    猜你喜欢
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多