R、 使用Read.csv一步读入数字字符?

R、 使用Read.csv一步读入数字字符?,r,import,read.table,R,Import,Read.table,我正在用几种不同的变量类型将.csv读入R中,其中两种是作为字符读入的,尽管它们是数字的(以十进制度数表示的纬度和经度)。为了解决这个问题,我在中读取它们后将它们定义为“as.numeric”。有没有更优雅的方法?也许在调用“read.csv”的范围内 d str(d) “data.frame”:467674 obs。共有7个变量: $station:chr“USC000036506”“USC000036506”“USC000036506”“USC000036506”。。。 $station_n

我正在用几种不同的变量类型将.csv读入R中,其中两种是作为字符读入的,尽管它们是数字的(以十进制度数表示的纬度和经度)。为了解决这个问题,我在中读取它们后将它们定义为“as.numeric”。有没有更优雅的方法?也许在调用“read.csv”的范围内

d str(d)
“data.frame”:467674 obs。共有7个变量:
$station:chr“USC000036506”“USC000036506”“USC000036506”“USC000036506”。。。
$station_name:chr“SEARCY AR US”“SEARCY AR US”“SEARCY AR US”“SEARCY AR US”。。。
$lat:chr“35.25”“35.25”“35.25”“35.25”。。。
$lon:chr“-91.75”“-91.75”“-91.75”“-91.75”“-91.75”“。。。
$tmax:int 50 50 39 100 72 61-17-44 6 0。。。
$tmin:int-39-39-89-61-6-83-144-150-161-128。。。
$tobs:int 33 22 17 61-78-50-94-22-11。。。

d$lat您可以设置列类。试试这个:

cls <- c(lat="numeric", lon="numeric")
read.csv("data.csv", colClasses=cls, stringsAsFactors=FALSE)

cls我终于找到了问题所在。“NA”在原始文件中编码为“未知”(在读入R之前)。我现在意识到我当时很笨。谢谢大家的耐心和帮助。这是我最后使用的代码:

d <- read.csv("data.csv",stringsAsFactors=F, na.strings="unknown")

d使用
colClasses
参数设置列类。我认为您的长列和lat列中可能有某些内容将函数弄乱,阻止它读取数值。也许是个奇怪的名字?逗号表示至少一个单元格中的十进制值?是的,@RomanLuštrik,lat/lon列中有NAs。这就是为什么(我猜)@Andrie建议使用ColClass不起作用的原因。。。我得到以下错误:扫描错误(文件、内容、nmax、sep、dec、quote、skip、nlines、na.strings,:scan()应为“真实”,得到“未知”@seapen NAs是如何编码的?
“na”
?或其他什么?
d <- read.csv("data.csv",stringsAsFactors=F, na.strings="unknown")