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

标签 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

最佳答案

对于遇到同样问题的人,我将在评论中回复的答案发布出来。 .

通过将 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 ...

关于从R中的CSV文件读取数字,数据文件中存在NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25415941/

相关文章:

java - RWeka安装错误: "Need at least Java version 1.7/7.0",但我有1.8

regex - 使用 lua 脚本解析 csv

javascript - 如何将.csv 中的数据加载到数据表中?

excel - 导入数值列中包含无效字符的数据

r - 使用 read.table 或 readLines 的条件输入

c++ - Rcpp:将列表中的 bool 值从 R 传递给采用 Rcpp::List 的 C++ 函数时出错

r - 从具有相同向量名称的列表列表中提取所有值

r - 如何为 ggplot 绘图编写测试

python-2.7 - 使用 read_csv 时的额外逗号导致数据框中的 "s 过多

linux - 将 FQDN 和 IP 列表转换为两列 CSV