阅读包含日期和数字的csv

kea*_*anu 14 r read.csv

我用R导入csv文件时遇到问题:

要导入的示例行:

2010-07-27;91
2010-07-26;93
2010-07-23;88
Run Code Online (Sandbox Code Playgroud)

我使用声明:

data <- read.csv2(file="...", sep=";", dec=".", header=FALSE)
Run Code Online (Sandbox Code Playgroud)

当我尝试将这些数据与使用统计分析产生的其他数据进行汇总时cbind,日期显示为整数,因为它是作为因子导入的.

如果我尝试将其显示为字符串使用as.character,则数字数据也会转换为字符,因此它们无法用于统计过程.

Mar*_*rek 25

使用colClasses参数:

data <- read.csv2(file="...", sep=";", dec=".", header=FALSE,
     colClasses=c("Date",NA))
Run Code Online (Sandbox Code Playgroud)

NA 表示"默认进行"

导入后,你可以转换factorDate通过

data[[1]] <- as.Date(data[[1]])
Run Code Online (Sandbox Code Playgroud)


Joh*_*ohn 9

也许您想将字符值转换为有意义的时间值.在这种情况下,POSIXt时间对象是一个不错的选择.

鉴于你的数据文件,我会做类似的事情.

data <- read.table(file="...", sep = ";", as.is = TRUE)
data[,1] <- strptime(data[,1], "%Y-%m-%d")
Run Code Online (Sandbox Code Playgroud)

在帮助中查找strptime以获取更多详细信息.

注意:如果您要指定文件的所有属性,请使用read.table.所有其他read.xxx版本的唯一目的是简化表达式,因为默认设置已设置.这里使用了read.csv2,因为它默认为sep =';'.因此,请勿再次指定.不必指定这是命令存在的全部原因.就个人而言,我只使用read.table,因为我永远不会记住所有变种的名称/默认值.在你的情况下,它也是最简短的调用,因为它满足你的标题和dec默认值.


mbq*_*mbq 7

添加as.is=TRUEread.csv通话.