使用R:
导入csv文件时出现问题要导入的示例行:
2010-07-27;91
2010-07-26;93
2010-07-23;88
我使用声明:
data <- read.csv2(file="...", sep=";", dec=".", header=FALSE)
当我尝试将此数据与使用cbind
的统计分析产生的其他数据进行汇总时,日期显示为整数,因为它是作为因子导入的。
如果我尝试使用as.character
将其显示为字符串,则数字数据也会转换为字符,因此无法用于统计过程。
答案 0 :(得分:25)
使用colClasses
参数:
data <- read.csv2(file="...", sep=";", dec=".", header=FALSE,
colClasses=c("Date",NA))
NA
表示“以默认方式进行”
导入后,您可以通过
将factor
转换为Date
data[[1]] <- as.Date(data[[1]])
答案 1 :(得分:9)
也许您想将字符值转换为有意义的时间值。在这种情况下,POSIXt时间对象是一个不错的选择。
鉴于你的数据文件,我会做类似的事情。
data <- read.table(file="...", sep = ";", as.is = TRUE)
data[,1] <- strptime(data[,1], "%Y-%m-%d")
在帮助中查找strptime以获取更多详细信息。
注意:如果您要指定文件的所有属性,请使用read.table。所有其他read.xxx版本的唯一目的是简化表达式,因为默认设置已设置。这里使用了read.csv2,因为它默认为sep =';'。因此,请勿再次指定。不必指定这是命令存在的全部原因。就个人而言,我只使用read.table,因为我永远不会记住所有变种的名称/默认值。在你的情况下,它也是最简短的调用,因为它满足你的标题和dec默认值。
答案 2 :(得分:7)
将as.is=TRUE
添加到read.csv
来电。