gpt4 book ai didi

r - qplot() 中可能存在不一致的行为?

转载 作者:行者123 更新时间:2023-12-04 06:49:14 27 4
gpt4 key购买 nike

我正在尝试使用 qplot() 绘制一个简单的时间序列,就像使用 plot() 所做的那样。 x 变量是 as.POSIXlt 而 y 只是一些连续的测量。这是带有一些简短注释的代码。任何有关为什么这些 data.frames 行为不同的帮助将不胜感激。正如你在下面看到的,我可以解决这个问题,但我很好奇为什么它不像我期望的那样工作。

一些细节:
平台:OS X 10.6.4
R 版本:R 2.11.0

免责声明:我意识到我可以深入研究源代码并自己解决这个问题。我从未使用过 SO 并认为这可能是本论坛的一个不错的话题。

免责声明(2):我是 ggplot2 的新手

library(ggplot2)
ws.dat <- read.csv("~/path/to/filename.csv",header=F)
names(ws.dat) <- c("s","t","w")
ws.dat$new.t <- as.POSIXlt(ws.dat$t)
ws.dat[1:5,]
## s t w new.t
## 1 29522 2005-07-02 00:00:00 5.00 2005-07-02 00:00:00
## 2 29522 2005-07-02 00:10:00 5.29 2005-07-02 00:10:00
## 3 29522 2005-07-02 00:20:00 5.48 2005-07-02 00:20:00
## 4 29522 2005-07-02 00:30:00 5.54 2005-07-02 00:30:00
## 5 29522 2005-07-02 00:40:00 5.49 2005-07-02 00:40:00


## the following works
plot(as.POSIXlt(ws.dat$t), ws.dat$w)

## doesn't work
qplot(as.POSIXlt(t), w, data = ws.dat)
## Error in if (length(range) == 1 || diff(range) == 0) { :
## missing value where TRUE/FALSE needed

## doesn't work
ws.dat$new.t <- as.POSIXlt(ws.dat$t)
qplot(new.t, w, data = ws.dat)
## Same error as above

## Note - I could find a more elegant way of doing this; I'm just trying
## to reproduce as fast as possible.
new.df <- data.frame(ws.dat$new.t, ws.dat$w)
new.df[1:5,]
## ws.dat.new.t ws.dat.w
## 1 2005-07-02 00:00:00 5.00
## 2 2005-07-02 00:10:00 5.29
## 3 2005-07-02 00:20:00 5.48
## 4 2005-07-02 00:30:00 5.54
## 5 2005-07-02 00:40:00 5.49

## 'works as *I* would expect'; this is != 'works *as* expected'
qplot(ws.dat.new.t, ws.dat.w, data = new.df)

最佳答案

使用 POSIXct - POSIXlt不适合包含在数据框中。当您使用 data.frame要创建变量,它会自动强制为 POSIXct .

关于r - qplot() 中可能存在不一致的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3355107/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com