0
num_only <- function(df) {
for (clm in seq_along(df)) {
num_cols <- vector("logical", length = ncol(df))
num_cols[[clm]] <-ifelse(length(grep('[aA-zZ]', df[[clm]])) == 0, TRUE,
FALSE)
}
return(num_cols)
}
上記の関数は、データフレーム内の列に数字のみがあるかどうかを示す論理ベクトルを返すものとします。しかし、それは私が最初の列(おそらく最初の2つ)のためにそれを実行すると、間違った値を返すようだ。 破損した関数/論理ベクトル-r
mydf <- data.frame(new = letters[11:20],
a = rnorm(10),
b = letters[1:10],
c = LETTERS[1:10],
d = rnorm(10))
私は上記のDFを入力し
は、それがTRUE FALSE TRUE FALSE FALSEの論理ベクトルを返す必要がありますが、私はこれが得る:num_only(mydf)
[1] FALSE FALSE FALSE FALSE TRUE
私が間違っているかわからないんだけど。誰も助けることができますか?
これはありがとうございます。あなたの2番目の機能について考えましたが、df列はすべて文字クラスなので、is.numericは動作しないとは思わなかった –