R 将时间序列矩阵转换为ggplot格式
如何将时间序列矩阵转换为R 将时间序列矩阵转换为ggplot格式,r,dataframe,ggplot2,formatting,R,Dataframe,Ggplot2,Formatting,如何将时间序列矩阵转换为 dDomingo dSegunda dTerça dQuarta dQuinta dSexta dSábado [1,] -1.783558 0.5123224 0.5997068 0.4680476 0.6521374 0.6276698 -1.0763264 [2,] -1.730086 0.8552685 0.6426731 0.6377859 0.3995325 0.2944567 -1.0996309 [3,
dDomingo dSegunda dTerça dQuarta dQuinta dSexta dSábado
[1,] -1.783558 0.5123224 0.5997068 0.4680476 0.6521374 0.6276698 -1.0763264
[2,] -1.730086 0.8552685 0.6426731 0.6377859 0.3995325 0.2944567 -1.0996309
[3,] -1.503333 0.9450167 -0.4125656 0.8446433 0.6839187 0.5397113 -1.0973919
[4,] -1.720261 0.3044134 0.6722075 0.5313041 0.6411365 0.7105043 -1.1393050
[5,] -1.234701 0.9189446 0.9670409 0.8713827 -1.1208727 0.3465987 -0.7483936
进入这个
V1 V2
[1,] -1.783558 dDomingo
[2,] 0.5123224 dSegunda
[3,] 0.5997068 dTerça
[4,] 0.4680476 dQuarta
[5,] 0.6521374 dQuinta
[6,] 0.6276698 dSexta
[7,] -1.0763264 dSábado
[8,] -1.730086 dDomingo
。。。等等,直到
[35,] -0.7483936 dSábado
请注意,我想要的新数据格式只有两列。第一个将包含来自最后一个矩阵的变量值。第二列将包含变量值所在的相应列
时间序列矩阵数据如下所示:
structure(c(-1.78355763661757, -1.73008589314791, -1.50333251627705,
-1.72026078275706, -1.23470060199216, 0.512322374645035, 0.855268450002498,
0.945016691336727, 0.304413384239457, 0.91894460806156, 0.599706795271625,
0.642673149573306, -0.412565627467277, 0.672207513790216, 0.967040903075167,
0.468047601527563, 0.637785901287577, 0.844643267672228, 0.531304065337568,
0.871382716325882, 0.652137447647579, 0.39953254735831, 0.683918734842367,
0.64113649695194, -1.12087270379329, 0.627669809872133, 0.294456709215146,
0.539711347678816, 0.710504348497859, 0.346598697399641, -1.07632639234637,
-1.09963086428893, -1.09739189778582, -1.13930502605998, -0.748393619076803
), .Dim = c(5L, 7L), .Dimnames = list(NULL, c("dDomingo", "dSegunda",
"dTerça", "dQuarta", "dQuinta", "dSexta", "dSábado")))
t(此处的结构)
输出
[,1] [,2] [,3] [,4] [,5]
dDomingo -1.7835576 -1.7300859 -1.5033325 -1.7202608 -1.2347006
dSegunda 0.5123224 0.8552685 0.9450167 0.3044134 0.9189446
dTerça 0.5997068 0.6426731 -0.4125656 0.6722075 0.9670409
dQuarta 0.4680476 0.6377859 0.8446433 0.5313041 0.8713827
dQuinta 0.6521374 0.3995325 0.6839187 0.6411365 -1.1208727
dSexta 0.6276698 0.2944567 0.5397113 0.7105043 0.3465987
dSábado -1.0763264 -1.0996309 -1.0973919 -1.1393050 -0.7483936
t(此处的结构)
输出
[,1] [,2] [,3] [,4] [,5]
dDomingo -1.7835576 -1.7300859 -1.5033325 -1.7202608 -1.2347006
dSegunda 0.5123224 0.8552685 0.9450167 0.3044134 0.9189446
dTerça 0.5997068 0.6426731 -0.4125656 0.6722075 0.9670409
dQuarta 0.4680476 0.6377859 0.8446433 0.5313041 0.8713827
dQuinta 0.6521374 0.3995325 0.6839187 0.6411365 -1.1208727
dSexta 0.6276698 0.2944567 0.5397113 0.7105043 0.3465987
dSábado -1.0763264 -1.0996309 -1.0973919 -1.1393050 -0.7483936
首先需要将
矩阵
转换为数据帧
。然后使用tidyr::gather
转换为长格式
mat1键值
#>1 dDomingo-1.7835576
#>2 dDomingo-1.7300859
#>3 dDomingo-1.5033325
#>4 dDomingo-1.7202608
#>5 dDomingo-1.2347006
#>6 dSegunda 0.5123224
#>7 dSegunda 0.8552685
#>8 dSegunda 0.9450167
#>35达巴多-0.7483936
#重命名为您想要的任何名称
df%>%
聚集(key=“V1”,value=“V2”)
#>V1 V2
#>1 dDomingo-1.7835576
#>2 dDomingo-1.7300859
#>3 dDomingo-1.5033325
#>4 dDomingo-1.7202608
#>5 dDomingo-1.2347006
#>6 dSegunda 0.5123224
#>7 dSegunda 0.8552685
#>8 dSegunda 0.9450167
#>35达巴多-0.7483936
编辑:要返回到wide
格式,请使用tidyr::spread
库(dplyr)
df_长%>%
分组依据(键)%>%
变异(rowid=row_number())%>%
排列(键,值)%>%
选择(-rowid)
第二次会议是第四次会议,第五次会议是第二次会议
1 -1.78 0.512 0.600 0.468 0.652 0.628 -1.08
2 -1.73 0.855 0.643 0.638 0.400 0.294 -1.10
3 -1.50 0.945 -0.413 0.845 0.684 0.540 -1.10
4 -1.72 0.304 0.672 0.531 0.641 0.711 -1.14
5 -1.23 0.919 0.967 0.871 -1.12 0.347 -0.748
由(v0.2.0)于2018年4月15日创建。您需要先将
矩阵
转换为数据帧。然后使用tidyr::gather
转换为长格式
mat1键值
#>1 dDomingo-1.7835576
#>2 dDomingo-1.7300859
#>3 dDomingo-1.5033325
#>4 dDomingo-1.7202608
#>5 dDomingo-1.2347006
#>6 dSegunda 0.5123224
#>7 dSegunda 0.8552685
#>8 dSegunda 0.9450167
#>35达巴多-0.7483936
#重命名为您想要的任何名称
df%>%
聚集(key=“V1”,value=“V2”)
#>V1 V2
#>1 dDomingo-1.7835576
#>2 dDomingo-1.7300859
#>3 dDomingo-1.5033325
#>4 dDomingo-1.7202608
#>5 dDomingo-1.2347006
#>6 dSegunda 0.5123224
#>7 dSegunda 0.8552685
#>8 dSegunda 0.9450167
#>35达巴多-0.7483936
编辑:要返回到wide
格式,请使用tidyr::spread
库(dplyr)
df_长%>%
分组依据(键)%>%
变异(rowid=row_number())%>%
排列(键,值)%>%
选择(-rowid)
第二次会议是第四次会议,第五次会议是第二次会议
1 -1.78 0.512 0.600 0.468 0.652 0.628 -1.08
2 -1.73 0.855 0.643 0.638 0.400 0.294 -1.10
3 -1.50 0.945 -0.413 0.845 0.684 0.540 -1.10
4 -1.72 0.304 0.672 0.531 0.641 0.711 -1.14
5 -1.23 0.919 0.967 0.871 -1.12 0.347 -0.748
由(v0.2.0)于2018年4月15日创建。使用此基本代码末尾注释中的m
stack(as.data.frame(m))
还是这个
library(zoo)
fortify.zoo(zoo(m), melt = TRUE)
将创建一个包含35行的两列数据框;但是,请注意,autoplot.zoo
将使用ggplot2绘制多变量zoo时间序列,而无需任何显式转换。如果希望每个系列位于单独的面板中,请删除facet=NULL
。有关更多信息和示例,请参见?autoplot.zoo
和?fortify.zoo
library(ggplot2)
library(zoo)
autoplot(zoo(m), facet = NULL) + ggtitle("My Series") + xlab("")
注
我们假设输入m
为:
m <- structure(c(-1.78355763661757, -1.73008589314791, -1.50333251627705,
-1.72026078275706, -1.23470060199216, 0.512322374645035, 0.855268450002498,
0.945016691336727, 0.304413384239457, 0.91894460806156, 0.599706795271625,
0.642673149573306, -0.412565627467277, 0.672207513790216, 0.967040903075167,
0.468047601527563, 0.637785901287577, 0.844643267672228, 0.531304065337568,
0.871382716325882, 0.652137447647579, 0.39953254735831, 0.683918734842367,
0.64113649695194, -1.12087270379329, 0.627669809872133, 0.294456709215146,
0.539711347678816, 0.710504348497859, 0.346598697399641, -1.07632639234637,
-1.09963086428893, -1.09739189778582, -1.13930502605998, -0.748393619076803
), .Dim = c(5L, 7L), .Dimnames = list(NULL, c("dDomingo", "dSegunda",
"dTerça", "dQuarta", "dQuinta", "dSexta", "dSábado")))
m使用此基本代码末尾注释中的m
stack(as.data.frame(m))
还是这个
library(zoo)
fortify.zoo(zoo(m), melt = TRUE)
将创建一个包含35行的两列数据框;但是,请注意,autoplot.zoo
将使用ggplot2绘制多变量zoo时间序列,而无需任何显式转换。如果希望每个系列位于单独的面板中,请删除facet=NULL
。有关更多信息和示例,请参见?autoplot.zoo
和?fortify.zoo
library(ggplot2)
library(zoo)
autoplot(zoo(m), facet = NULL) + ggtitle("My Series") + xlab("")
注
我们假设输入m
为:
m <- structure(c(-1.78355763661757, -1.73008589314791, -1.50333251627705,
-1.72026078275706, -1.23470060199216, 0.512322374645035, 0.855268450002498,
0.945016691336727, 0.304413384239457, 0.91894460806156, 0.599706795271625,
0.642673149573306, -0.412565627467277, 0.672207513790216, 0.967040903075167,
0.468047601527563, 0.637785901287577, 0.844643267672228, 0.531304065337568,
0.871382716325882, 0.652137447647579, 0.39953254735831, 0.683918734842367,
0.64113649695194, -1.12087270379329, 0.627669809872133, 0.294456709215146,
0.539711347678816, 0.710504348497859, 0.346598697399641, -1.07632639234637,
-1.09963086428893, -1.09739189778582, -1.13930502605998, -0.748393619076803
), .Dim = c(5L, 7L), .Dimnames = list(NULL, c("dDomingo", "dSegunda",
"dTerça", "dQuarta", "dQuinta", "dSexta", "dSábado")))
m也许我表达得不好。我想要一个两列矩阵。在其中,第一列包含变量值,第二列包含最后一个矩阵中的变量名。@这两列都表示您不能这样做。矩阵中的所有元素都必须是同一类型。你可以把数字和字符元素放在一起。也许我表达得不好。我想要一个两列矩阵。在其中,第一列包含变量值,第二列包含最后一个矩阵中的变量名。@这两列都表示您不能这样做。矩阵中的所有元素都必须是同一类型。你可以把数字元素和字符元素放在一起。我用什么函数返回?我用什么函数返回?