нагрузки библиотеки и выборки данных:Вычислить верхние и низкие десять значений процентов в нескольких столбцах в R
library(MASS)
View(Cars93)
Cars93$ID=1:93
Теперь я хочу, чтобы подмножество Cars93
так что новый ДФ (sub0l
и sub0h
) имеет все идентификаторы со всеми столбцами, но с верхним (для df sub0h
) и самым низким значением 10% (для df sub0l
) в столбце 17:25, а значения остатков (11-100 квартилей для df sub0l
и 0-90 квартилей для df sub0h
) могут быть изменены на NA.
Вот моя попытка создать два с десяти в глубину верхнего% или низкие десять% значений из столбцов 17:25:
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)))))
я получаю сообщение об ошибке при subseting вершины и самые низкие десять квартили колонн:
Error in `[.data.frame`(Cars93, ,17:25) : undefined columns selected
Called from: `[.data.frame`(Cars93, ,17:25)
Любая лучшая альтернатива?
Спасибо за комментарий. Я все еще получаю сообщение об ошибке «Ошибка в quantile.default (i, probs = 0.1, na.rm = T): факторы недопустимы. Вызывается из: quantile.default (i, probs = 0.1, na.rm = T)" – Rocky
другой, но аналогичный набор данных – Rocky
Thanks; да, в данных были факторы. Не могли бы вы немного объяснить свой код, чтобы он помог другим, кто прочитал этот пост? Это нормально, если вы этого не хотите. Для других читателей, которые могут столкнуться с подобной проблемой; попробуйте эти коды перед запуском над кодом с ответом: 'sapply (df, mode)', 'sapply (df, class)', 'which (colnames (df) ==" имя столбца ")' для режима проверки, класса и местоположения столбца в df. – Rocky