数字だけで構成する列がありますが、そこに文字やその他の記号もあります。 RはキャラクターとしてHousenumberの機能を見る。例えば文字列で構成される行を削除する
:
Housenumber
1
14
5
at5
53.!
boat
は私が数字のみで構成されていないと、それらを削除する行を識別するために書くことができる機能のどのような不思議でしたか?
Housenumber
1
14
5
数字だけで構成する列がありますが、そこに文字やその他の記号もあります。 RはキャラクターとしてHousenumberの機能を見る。例えば文字列で構成される行を削除する
:
Housenumber
1
14
5
at5
53.!
boat
は私が数字のみで構成されていないと、それらを削除する行を識別するために書くことができる機能のどのような不思議でしたか?
Housenumber
1
14
5
df[length(grep("[^[:digit:]]", df$Housenumber, value=F)) == 0, ]
説明:
正規表現[^[:digit:]]
は、例えば、任意の非数値文字と一致します他の文字や記号を削除する必要があります。一致が見つかった場合
コール
grep("[^[:digit:]]", df$Housenumber, value=F)
はあなたのHousenumber
列の最初のインデックスを含むベクトルを返します。したがって、一致が見つからない場合、このベクトルの長さはゼロになり、その行を保持したいことを意味します。
この特定のケースでは、私は@akrunによって与えられた答えが好きですが、私の答えは正規表現の任意の並べ替えを使用して行をフィルタリングの一般的なケースでも動作します。
as.numeric
を使用すると、数値以外の要素をNAに変換し、!is.na
の論理インデックスを持つ行を削除できます。
df1[!is.na(as.numeric(df1$Housenumber)),, drop= FALSE]
as.numeric
で数値を数値に変換できます。数値以外の値は強制的にNA
になるため、第2ステップでNA
の値を除外できます。
Housenumber <- c(1,14,5,"at5","53.!","boat") # Create your housenumber vector
Housenumber <- as.numeric(Housenumber) # Convert it to numeric
Housenumber <- Housenumber[!is.na(Housenumber)] # Filter out the NA
これはすべきことです。
書き込み、この関数のコードで、あなたがそれを必要とする場合は、複数の時間:
numerics_of = function (x){
nums = c()
a = suppressWarnings(as.numeric(x));
return (a[!is.na(a)])
}
とexmaple用:
x = c(2,4,5,3,2,"a",2,3,4)
numerics_of(x)
は、この出力に
[1] 2 4 5 3 2 2 3 4
たぶん 'などを提供します.numeric(myData $ Housenumber) '? – zx8754