我正在尝试使用已加载到R中的csv文件进行一些分析。我正在执行以下操作以通过test [[3]] [[1]]访问特定值,以获取特定值:
test <- read.csv(file = "test.csv")
test <- data.frame(lapply(test, as.character), stringsAsFactors=FALSE)
否则我会得到这样的东西:
> chicago[[3]][[1]]
[1] 08/02/2002 11:00:00 AM
19747 Levels: 01/01/2001 03:49:00 AM 01/01/2001 06:17:00 PM 01/01/2001 12:00:00 AM ... 12/31/2015 11:46:00 AM
由于一列保存日期,我将其转换为POSIXlt。
test[[3]] <- strptime(test[[3]], format='%m/%d/%Y %I:%M:%S %p')
现在正在按预期更改值,例如:
01/28/2004 06:30:00 PM -> 2004-01-28 18:30:00
现在尝试访问这些值,我意识到,例如test [[3]] [[1]]没有给出具体的日期 - 而是我得到一个包含每行每一秒的列表。
稍微测试一下,我发现POSIXit类型有点&#34;不同&#34 ;;意思是上面提到的值似乎是某种列表,如下所示:
> unlist(unclass(value))
sec min hour mday mon year wday yday isdst zone gmtoff
"0" "0" "11" "2" "7" "102" "5" "213" "1" "CEST" NA
所以我的问题是:有没有办法获得像#34; 2004-01-28 18:30:00&#34;而不是整列的列表?
答案 0 :(得分:2)
你的生活太难了。您可以解析整个列的日期或日期时间 。无需lapply
。
您(一般情况下)不希望POSIXlt
代表。查看现有的包,例如我的(相对较新的)anytime包(也是on CRAN),它甚至可以为您转换factor
- 并且不需要显式格式字符串,原始值或其他持率。
但由于你的帖子不包含reproducible example,我无法采取更具体的步骤。