最近、私は、箱から出してすぐに使い切ることができなかったという事実is.logical
に驚いていました–少なくとも彼らは正しい結果を提供しませんでした。is.factor
apply
これが私の小さな再現可能な例です:
# generate a dataset that contains a couple of modes
someDf <- data.frame(fac1=gl(2,3,12),
int=1:12,
char=letters[1:12],
logi=rep(c(T,F),6),
fac2=gl(3,2,12))
# hooray, this did work, got factors, int,
# characters and logical
str(someDf)
# I expected this to work, but it didn't
# everything is just FALSE
apply(someDf,2,is.logical)
私はあきらめず、これをこっそりと回避する方法を見つけました。
unlist(lapply(names(someDf),function(x) is.logical(someDf[,x])))
これは正しい結果をもたらしますが、なぜそれがそれほど複雑でなければならないのか、そしてそれを解決するためのより簡単なものがあるのだろうかと思います。何か案は?
ヒント:私はそれを見ました
apply(someDf,2,class)
すべてを提供しますcharacters
。これも意外です。多分何かがeval
私が見つけることができなかったトリックをします。