我正在尝试在 R 中读取 CSV 文件。如何在阅读时阅读和格式化日期和时间并避免丢失标记为 ? 的值。我读取后加载的数据应该是干净的。
我尝试过类似的方法
data <- read.csv("Data.txt")
它有效,但日期和时间保持原样。
另外,如何从特定数据范围中提取数据子集?
为此,我尝试了类似的东西
subdata <- subset(data,
Date== 01/02/2007 & Date==02/02/2007,
select = Date:Sub_metering_3)
Run Code Online (Sandbox Code Playgroud)
我得到错误 Error in eval(expr, envir, enclos) : object 'Date' not found
日期是第一列。
far*_*nsy 10
这些函数read.csv()
并read.table()
没有设置为对可以有多种格式的日期等内容进行详细的花哨转换。当这些函数没有自动执行所需的操作时,我发现最好以文本形式读取数据,然后在事后转换变量。
data <- read.csv("Data.txt",colClasses="character",na.strings="?")
data$FixedDate <- as.Date(data$Date,format="%Y/%m/%d")
Run Code Online (Sandbox Code Playgroud)
或任何您的日期格式。然后变量FixedDate
将是类型Date
,您可以使用相等和其他条件进行子集化。
此外,在您的示例代码中,您将01/02/2007
作为裸代码放置,这导致 1 除以 2,然后除以 2007 产生 0.0002491281,而不是插入有意义的日期。考虑一下as.Date("2007-01-02")
。