小编pan*_*ach的帖子

R - 绘制缺少 NA 值的线

我有以下 data.frame,“子集”

Time            A   B   C
2016-10-07 06:16:46 NA  NA  41 
2016-10-07 06:26:27 40  39  42
2016-10-07 06:38:23 NA  40  NA
2016-10-07 06:41:06 42  42  44
2016-10-07 06:41:06 NA  42  44
2016-10-07 06:41:06 NA  42  44
2016-10-07 06:41:07 44  43  48
2016-10-07 06:41:41 NA  43  48
2016-10-07 06:42:44 45  42  48
2016-10-07 06:48:40 46  45  48
Run Code Online (Sandbox Code Playgroud)

我想要一个图,其中“时间”是x轴,“A”是一条线,“B”和“C”是点。

然而,当我绘制此图时,“A”出现的唯一一条线是连接最后 2 个点(45 和 46)的线,因为这是“A”中唯一的 2 个连续值。该图忽略“A”值之间的 NA,而不是通过 NA 连接这些值的线。为此,我使用以下代码:

plot(subset$Time,subset$A,type="l",ylim=c(min(subset$B,na.rm=TRUE)-5,max(subset$C,na.rm=TRUE)+5),xlim=c(as.POSIXct(min(subset$Time)),as.POSIXct(max(subset$Time))))
lines(subset$Time,subset$B,type="p",col=27)
lines(subset$Time,subset$C,type="p",col=134)
Run Code Online (Sandbox Code Playgroud)

我尝试过诸如 na.omit() 或 na.approx() 之类的解决方案,但是这些解决方案似乎只有在我在独立图中单独绘制“A”时才有效,它们似乎不能与“Time”一起使用”以及“B”和“C”都在同一个情节中。

plot r missing-data na

3
推荐指数
1
解决办法
6万
查看次数

将字符日期和时间(以毫秒为单位)转换为 R 中的数字

我有以下时间戳向量:

Timestamp <- c("30-09-2016 11:45:00.000", "01-10-2016 06:19:57.860", "01-10-2016 06:20:46.393")
Run Code Online (Sandbox Code Playgroud)

时间戳是包含其他度数和权重列的表的一部分(不幸的是,它似乎不是 data.frame...):

  Timestamp Weight Degrees
1 30-09-2016 11:45:00.000 38.19 40.00 
2 01-10-2016 06:19:57.860 39.12 40.00 
3 01-10-2016 06:20:46.393 42.11 41.00
Run Code Online (Sandbox Code Playgroud)

我想根据时间戳绘制权重,但时间戳的模式是“字符”,这意味着x轴无法正确读取。您有什么建议将其转换为数字吗?

我已经尝试过as.Date(Timestamp,format='%d-%m-%Y %H:%M:%OS3'),但似乎不起作用。

r date numeric type-conversion milliseconds

3
推荐指数
1
解决办法
3853
查看次数

标签 统计

r ×2

date ×1

milliseconds ×1

missing-data ×1

na ×1

numeric ×1

plot ×1

type-conversion ×1