我是R的新手,所以我希望有人可以向我展示最能实现我想做的R风格的方式。
我有JSON数据,如下所示:
{
"1423699200000": 1596941,
"1423785600000": 1596941,
"1423872000000": 1596941,
"1423958400000": 1596941,
...}
左边的数字是UNIX纪元时间戳,右边的数字只是一些数值。 我已使用rjson库将此数据转换为R对象。有关详细信息,请参阅here。
我想使用这些数据创建折线图。做这个的最好方式是什么?我被告知附加到矢量的R循环非常慢,因此遍历这些值来为x轴数据构建两个矢量并且y轴数据不是一个好主意。
答案 0 :(得分:3)
这是一个使用一些合成数据的演示:
set.seed(11);
N <- 20;
jsonData <- data.frame(date=seq(as.POSIXct('2015-02-11 19:00'),by='day',len=N),num=sort(sample(seq(1596941,by=1,len=10),N,replace=T)));
jsonData;
## date num
## 1 2015-02-11 19:00:00 1596941
## 2 2015-02-12 19:00:00 1596941
## 3 2015-02-13 19:00:00 1596941
## 4 2015-02-14 19:00:00 1596941
## 5 2015-02-15 19:00:00 1596942
## 6 2015-02-16 19:00:00 1596942
## 7 2015-02-17 19:00:00 1596942
## 8 2015-02-18 19:00:00 1596943
## 9 2015-02-19 19:00:00 1596943
## 10 2015-02-20 19:00:00 1596944
## 11 2015-02-21 19:00:00 1596945
## 12 2015-02-22 19:00:00 1596945
## 13 2015-02-23 19:00:00 1596945
## 14 2015-02-24 19:00:00 1596946
## 15 2015-02-25 19:00:00 1596946
## 16 2015-02-26 19:00:00 1596948
## 17 2015-02-27 19:00:00 1596949
## 18 2015-02-28 19:00:00 1596949
## 19 2015-03-01 19:00:00 1596950
## 20 2015-03-02 19:00:00 1596950
plot(num~date,data=jsonData,type='l');
如果您不知道如何将UNIX纪元时间戳转换为日期/时间值,请按以下步骤操作:
timestamps <- c(1423699200000,1423785600000,1423872000000,1423958400000);
dates <- as.POSIXct(timestamps/1000,origin='1970-01-01'); ## divide by 1000 to get seconds
dates;
## [1] "2015-02-11 19:00:00 EST" "2015-02-12 19:00:00 EST" "2015-02-13 19:00:00 EST" "2015-02-14 19:00:00 EST"