以下のコードがあります。英数字の値を持つセルを見つけたいのですが、na または NA のセルも無視する必要があります。
コードをそれに変更するにはどうすればよいですか? 必要な R コマンドは、newcolumn の以下の結果を返す必要があります
真、真、偽、偽、真、偽、偽
コマンド 3 と 4 を試しましたが、失敗しました :(
> newcolumn=c(1,2,"na","NA","abc","","*")
> grepl("[[:alnum:]]", newcolumn)
[1] TRUE TRUE TRUE TRUE TRUE FALSE FALSE
> grepl("[[:alnum:]] | na", newcolumn)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> grepl(c("[[:alnum:]]","na"), newcolumn)
[1] TRUE TRUE TRUE TRUE TRUE FALSE FALSE
Warning message:
In grepl(c("[[:alnum:]]", "na"), newcolumn) :
argument 'pattern' has length > 1 and only the first element will be used
> grepl("[[:alnum:]]" | "na" | "NA", newcolumn)
Error in "[[:alnum:]]" | "na" :
operations are possible only for numeric, logical or complex types
> str(newcolumn)
chr [1:7] "1" "2" "na" "NA" "abc" "" "*"
===========================アップデート1===================== =========
newcolumn2<-newcolumn[grepl("(?=(?i)na(N)?(*SKIP)(*F))|[[:alnum:]]|(?=(?i)nan(*SKIP)(*F))|(?=(?i)null(*SKIP)(*F))", newcolumn, perl=TRUE)]
na、nan、null、およびそれらのバリアントも認識したいので、上記のようにコードを更新しました。しかし、「null部分が機能していません。どのような変更を加える必要がありますか?