我有一些數據,其中某些列中混合了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
,但ř自動採取傳感器1和傳感器3作爲character
值。我想用NA
或某些數值替換「失敗」,或者將整個列類型更改爲數字類型,因此「失敗」將自動更改爲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
列信息。
如何才能識別「失敗」列,並僅更改這些列並更新我的數據框?謝謝。
如果您使用任何'read.xyz'函數來讀取您的數據,例如'read.table',你可以使用'na.strings'參數,比如'na.strings = c(<你想解釋爲NA的所有字符串)'。 – Henrik
相關:[用數據框中的NA替換字符值](https://stackoverflow.com/questions/3357743/replacing-character-values-with-na-in-a-data-frame/3357804#3357804) – Henrik
是的,亨裏克。我知道這種方法。我正在編寫一些自動功能,可以在一系列數據預處理/清理步驟中完成這項工作,因爲我們的用戶通常只是使用數據導入按鈕來導入數據本身。一些清潔工作是在數據導入後完成的。非常感謝! –