我想通过仅选择超出特定范围的列来对数据框进行子集化。 IE,我想分别评估每列的max-min,只选择范围大于给定值的列。例如,给定以下简单数据帧,我想创建一个仅包含范围> gt的列的子集数据帧。 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,但没有运气。我确定我错过了一些简单的事情。
答案 0 :(得分:2)
您可以使用sapply()
将函数应用于d
的每一列,然后计算列值范围的差异。然后将其与99进行比较。结果您将获得TRUE或FALSE,然后将其用于子集列。
d[,sapply(d,function(x) diff(range(x))>99)]