SparkプラットフォームでRとRStudioServerを使用して、特定の列(文字列)が数値の条件を満たす場所でtblをフィルタリングしたいと思います。したがって、列には数値/整数値( '1234')と文字列値( 'x1234')の両方が含まれており、後者を除外したいと思います。
これは、dyplrを使用して、たとえばフィルター演算子/関数で可能ですか?
私は次のようなものを試しました:
tbl2 <- tbl %>% filter(!is.numeric(col1))
ちなみに、データは他のサーバーに保存されているので、ローカルにロードしたくありません。したがって、データフレームのようなオブジェクトを使用することはできません。私はdyplrのようなライブラリに縛られています。
ヘルプは大歓迎です!
私はこれがうまくいくとは思わない:tbl2 <- tbl %>% filter(!is.numeric(col1))
。tbl_dfまたはdfでは、各列に1つのクラスしかありません。したがって、あなたの場合、「123」と「x123」を含むcol1はクラス「character」である必要があります。
考えられる解決策の1つは、col1を数値として変換し、変換が成功するかどうかをテストすることです。
tbl2 <- tbl %>% filter(!is.na(as.numeric(col1)))
テスト:
library(data.frame)
df <- data.frame(a=1:3,b=2:4)
df[2,2] <- "x123"
class(df$b)
# "character"
df %>% filter(!is.na(as.numeric(b)))
# a b
#1 1 2
#2 3 4
注:警告メッセージがあります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加