在 R 中读取 CSV 文件并格式化日期和时间,同时读取并避免标记为的缺失值?

ram*_*ani 7 r

我正在尝试在 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")