【发布时间】:2016-08-16 07:46:15
【问题描述】:
加载库和示例数据:
library(MASS)
View(Cars93)
Cars93$ID=1:93
现在我想对 Cars93 进行子集化,以便新的 df(sub0l 和 sub0h)具有所有列的所有 ID,但只有顶部(对于 df sub0h)和最低 10% 的值(对于 df @ 987654326@)在第 17:25 列中,其余值(df sub0l 的 11-100 四分位数和 df sub0h 的 0-90 四分位数)可以更改为 NA。
这是我尝试从 17:25 列创建两个具有前 10% 或最低 10% 值的 df:
sub0l <- do.call(rbind,by (Cars93,Cars93$ID,FUN= function(x)
subset(Cars93, (Cars93[,17:25] <= quantile(Cars93[,17:25], probs= .10)))))
sub0h <- do.call(rbind,by (Cars93,Cars93$ID,FUN= function(x)
subset(Cars93, (Cars93[,17:25] >= quantile(Cars93[,17:25], probs= .91)))))
在对列的前十和后四分位数进行子集化时出现错误:
Error in `[.data.frame`(Cars93, ,17:25) : undefined columns selected
Called from: `[.data.frame`(Cars93, ,17:25)
还有更好的选择吗?
【问题讨论】: