При написании удобных функций для subset() я столкнулся с странной ситуацией, когда использование эквивалентных логических операторов возвращает разные подмножества. Так, например:R: subset() возвращает разные результаты для эквивалентных логических выражений
dat = data.frame(ttl.stims = c(4,4,8,8), change = c('big', 'small'))
dat
ttl.stims = 4
#logical statements are equivalent
dat$ttl.stims == 4
dat$ttl.stims == ttl.stims
#subset evaluates differently
subset(dat, dat$ttl.stims == 4)
subset(dat, dat$ttl.stims == ttl.stims)
Я работал вокруг этого дела:
index = dat$ttl.stims == ttl.stims
subset(dat, index)
Но я так любопытно, почему первые два подмножества не дают одинаковые результаты! Идеи? Мысли? Pontifications?
Из '? Subset':« Предупреждение: ... в частности, нестандартная оценка аргумента «подмножество» может иметь непредвиденные последствия ». –
Возможный дубликат [В R, почему '\ [' лучше, чем 'подмножество'?] (Http://stackoverflow.com/questions/9860090/in-r-why-is-better-than-subset) – joran