我正在尝试在R中读取CSV文件。如何在阅读时阅读和格式化日期和时间,并避免标记为?的缺失值。我读取后加载的数据应该是干净的。
我尝试过类似的东西 data< - read.csv(“Data.txt”) 它有效,但日期和时间都是如此。
另外,如何从特定数据范围中提取数据子集?
为此我试过像
这样的东西subdata< - subset(data,Date == 01/02/2007& Date == 02/02/2007,select = Date:Sub_metering_3)
我收到错误eval中的错误(expr,envir,enclos):找不到对象'日期'
日期是第一列。
答案 0 :(得分:3)
函数read.csv()
和read.table()
未设置为对可能包含多种格式的日期等详细的奇特转换。当这些功能不能自动完成所需的功能时,我发现最好以文本形式读取数据,然后在事后转换变量。
data <- read.csv("Data.txt",colClasses="character",na.strings="?")
data$FixedDate <- as.Date(data$Date,format="%Y/%m/%d")
或您的日期格式。变量FixedDate
将为Date
类型,您可以使用相等和其他条件进行子集化。
此外,在您的示例代码中,您将01/02/2007
作为裸代码,这导致将1除以2,然后到2007,得到0.0002491281,而不是插入有意义的日期。请考虑使用as.Date("2007-01-02")
。