0

我想通过仅选择超出特定范围的列来对数据框进行子集化。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,但没有运气。我确定我错过了一些简单的东西。

4

1 回答 1

2

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

d[,sapply(d,function(x) diff(range(x))>99)]
于 2013-12-03T17:45:17.820 回答