从R中的CSV文件读取数字,数据文件中存在NaN

时间:2014-08-20 23:09:44

标签: r csv

我有一个CSV文件,其中包含一些字符和数字字段以及文件中的一些NaN。我想将数字字段读作数字和字符字段作为字符。

例如,我的CSV文件monthly.csv目前就是这样

Datum,Index,D12,E12,b/m,tbl,AAA
187101,4.44,0.2600,0.4000,NaN,NaN,NaN
187102,4.50,0.2600,0.4000,NaN,NaN,NaN
...
...
...

我正在阅读以下代码

monthly <- read.csv2("monthly.csv", sep=',', header = T, na.strings = "NaN", stringsAsFactors=F)

当我查看monthly变量的内容时,我仍然看到类型为

> str(monthly)
'data.frame':   1620 obs. of  7 variables:
 $ Datum     : int  187101 187102 187103 187104 187105 187106 187107 187108 187109 187110 ...
 $ Index     : chr  "4.44" "4.50" "4.61" "4.74" ...
 $ D12       : chr  "0.2600" "0.2600" "0.2600" "0.2600" ...
 $ E12       : chr  "0.4000" "0.4000" "0.4000" "0.4000" ...
 $ b.m       : chr  NA NA NA NA ...
 $ tbl       : chr  NA NA NA NA ...
 $ AAA       : chr  NA NA NA NA ...

基本上只有第一个字段转换为int,其余字段仍为chr。如何使其他人成为int

1 个答案:

答案 0 :(得分:1)

对于遇到同样问题的人,我发布的评论中已回答了答案。

read.csv2更改为read.csv它按预期工作,我得到了预期的描述。

> str(monthly)
'data.frame':   1620 obs. of 7 variables:
 $ Datum     : int  187101 187102 187103 187104 187105 187106 187107 187108 187109 187110 ...
 $ Index     : num  4.44 4.5 4.61 4.74 4.86 4.82 4.73 4.79 4.84 4.59 ...
 $ D12       : num  0.26 0.26 0.26 0.26 0.26 0.26 0.26 0.26 0.26 0.26 ...
 $ E12       : num  0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 ...
 $ b.m       : num  NA NA NA NA NA NA NA NA NA NA ...
 $ tbl       : num  NA NA NA NA NA NA NA NA NA NA ...
 $ AAA       : num  NA NA NA NA NA NA NA NA NA NA ...