Это продолжение вопроса, который я спросил здесь: Getting Factor Means into the dataset after calculationИспользование do.call коэффициента масштабирования - сброс ошибки значение
Теперь, когда я в основном нормализуются все статы, что я заинтересован в использовании I хотите найти набор данных для людей, которые пересекаются с ними. Таким образом, я ищу набор данных, как это:
base3[((base3$ScaledAVG>2)&(base3$ScaledOBP>2)&(base3$ScaledK.AB<.20)),]
ищет игроков, которые имеют все три из тех вещей, правда, все же, когда я запускаю это он сбрасывает Scaled значение K.AB либо 0,5, 1 или 2 и затем не выполняет поиск с использованием этого параметра. Есть ли что-то не так с поиском набора данных таким образом или есть лучший способ найти людей в наборе данных в этом же ключе?
Вот некоторые выборочные данные, но он не имеет те же проблемы, когда я выхожу на 4000 записей, у меня есть:
AVG = c(.350,.400,.320,.220,.100,.250,.400,.450)
Conf = c("SEC","ACC","SEC","B12","P12","ACC","B12","P12")
OBP = c(.360,.420,.360,.260,.160,.260,.460,.410)
K.AB = c(.11,.10,.09,.25,.20,.19,.05,.09)
Conf=as.factor(Conf)
d<- data.frame(Conf, AVG,OBP,K.AB)
dd <- do.call(rbind, by(d, d$Conf, FUN=function(x) { x$Scaled <- scale(x$AVG); x}))
dd <- do.call(rbind, by(d, d$Conf, FUN=function(x) { x$Scaled <- scale(x$OBP); x}))
dd <- do.call(rbind, by(d, d$Conf, FUN=function(x) { x$Scaled <- scale(x$K.AB); x}))
dd[((dd$ScaledAVG>2)&(dd$ScaledOBP>2)&(dd$ScaledK.AB<.20)),]
Спасибо!
Данные примера, которые вы предоставляете, почти бесполезны - что такое 'base3'? У вас есть 'confName' и' Conf', а не 'Scaled'. Пожалуйста, сделайте это воспроизводимым. –
Заключительная функция ничего не сделает по этим данным, но гипотетически, если у вас есть куча, и у вас есть значения, которые были на 2 sds выше среднего для них, это лучший способ добраться до них или есть ли лучшие способы сделать это? – BaseballR
И я переписал образцы данных, извиняюсь за то, что не сделал его воспроизводимым! Это должно работать, за исключением финальной части. – BaseballR