一部の列にはcharacter
とnumeric
というデータが混在しているデータがあります。たとえば:複数の列で特定の文字列をNAに変更して列を数値に変更する方法
Sensor Sensor2 Sensor3
Fail 5 Fail
Fail 5 Fail
Fail 5 Fail
Fail 5 Fail
5 5 Fail
6 5 Fail
8 5 Fail
すべてのセンサ値はnumeric
する必要がありますが、Rは、自動的にcharacter
値としてセンサー1とSensor3を取ります。 "Fail"をNA
またはいくつかの数値で置き換えるか、Column型全体を数値型に変更して、「Fail」が自動的にNA
に変更されます。
私の問題は、私のデータセットが実際には大きかったということです(センサーデータは毎秒生成され、200個以上の変数があります)。私は '失敗'を含むすべての列を識別し、これらの列をnumeric
型に変更したいと考えています。
これは私が試したものです:私は
function(mydata, value1, value2){
mydata <- data.frame(lapply(mydata, function(x){
gsub(value1, value2 ,x)
}))
}
を機能を書いたこの機能は動作しますが、唯一の問題は、全体のデータフレームがfactor
型に変更されたということです。私はnumeric
とcharacter
を混在させて、データ型を正しく保ちたいと思っています。だから私は
function(mydata, value1, value2){
mydata <- data.frame(lapply(mydata, function(x){
is.numeric(gsub(value1, value2 ,x))
}))
}
を試してみましたこれはnumeric
にすべての私のコラムを変更したので、私はすべてのcharacter
列情報を逃しました。
「Fail」列のみを識別し、それらの列のみを変更し、そのデータフレームを変更するにはどうすればよいですか?ありがとう。
'read.xyz'関数のいずれかを使用してデータを読み込むと、たとえば、次のようになります。 'read.table'の場合、' na.strings = c(
Henrik
関連:[データフレーム内の文字の値をNAに置き換える](https://stackoverflow.com/questions/3357743/replacing-character-values-with-na-in-a-data-frame/3357804#3357804) – Henrik
はい、ヘンリク。私はこの方法を知っています。私は、ユーザーが通常はデータインポートボタンを使ってデータをインポートするため、一連のデータ前処理/クリーニング手順でこのジョブを実行できる自動機能をいくつか書いています。データをインポートした後に、一部のクリーニングジョブが実行されました。どうもありがとう! –