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)
しかし、なぜ最初の 2 つのサブセットが同じ結果を生成しないのか、とても興味があります! アイデア?考え?ポンティフィケーション?