我從CSV文件導入了一個奇數格式的數值數據。這裏是我正在使用的數據幀的可重複的例子:重新格式化R中的雜亂數據幀列
df <- data.frame("r1" = c(1,2,3,4,5), "r2" = c(1,2.01,-3,"-","2,000"))
「R2」包含底片的跡象,例如值「 - 」,以零表示的值爲零 - 「 - 」。要運行在這個混亂的R2列中的某些數值分析,我將需要:
- 替換「 - 」用零「0」,同時避免消除在負值前面的 負號。
- 避免強制NIA等「2,000」等合法值。出於某種原因,當我運行命令時:
foo$row2<- as.numeric(sub("-",0,foo$row2))
R將用逗號格式化的值強制轉發到NAs,從而破壞列中的數據。
下面是輸出的一個例子運行foo$row2<- as.numeric(sub("-",0,foo$row2))
後:
Warning message:
NAs introduced by coercion
r1 r2
1 1 1.00
2 2 2.01
3 3 3.00
4 4 0.00
5 5 NA
正如你所看到的, 「2000」 被裹挾NA。 -3被錯誤地轉換爲3(破折號刪除)。但是,嘿,至少我們擺脫了第3行中的「 - 」,對!
下面是最終我想生產什麼:
r1 r2
1 1 1.00
2 2 2.01
3 3 -3.00
4 4 0.00
5 5 2000
注意,從5行中的逗號被刪除。列r2應該格式化,以便我可以在其上運行諸如sum(df$r2)
的命令。
它們看起來幾乎等同於我。 –