我是R的新手,这是一个简单的问题。我想绘制包含时间值的输入文件的值。输出图像应包含蓝线(对于Dist为09.0的行)和红线(对于Dist为04.0的行)。
我设法通过直接在graph.r
中输入整数值来生成图表,但现在我希望graph.r
从input.txt
获取这些值,并将其格式化为时间( H:MM:SS)。这是可能的,还是我必须先解析input.txt
才能将它提供给R?
Date(x) Dist Time(y)
120926 09.0 1:54:42
121001 04.0 0:19:00
121202 04.0 0:18:53
121206 09.0 1:13:19
#!/usr/bin/env Rscript
# Define the cars vector with 5 values
input <- 'path/to/input.txt'
nine <- file(input) #how to parse it?
four <- c(3600, 12:00, 16, 4, 9) #this fails because of "12:00"
# Set output file type to png
png("output.png", width=320, height=240)
# Graph using blue points for Dist 9, and red for Dist 4.
plot(nine, type="o", col="blue")
plot(four, type="o", col="red")
# Output to file
dev.off()
答案 0 :(得分:0)
我就是这样做的。您将需要&#34; as.POSIXct&#34;的图形包。在执行定位器线后,您需要在图例的上角点击图表。
data=read.table("input.txt",head=T)
library(graphics)
plot(data$Date.x.,as.POSIXct(strptime(data$Time.y.,format="%H:%M:%S")),type="n", xlab="Date",ylab="Time")
lines(data$Date.x.[data$Dist==4],as.POSIXct(strptime(data$Time.y.,format="%H:%M:%S"))[data$Dist==4],col="red")
lines(data$Date.x.[data$Dist==9],as.POSIXct(strptime(data$Time.y.,format="%H:%M:%S"))[data$Dist==9],col="blue")
leg=locator(1)
legend(leg,legend=c(4,9),col=c("red","blue"),lty=1)