Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将时间序列矩阵转换为ggplot格式_R_Dataframe_Ggplot2_Formatting - Fatal编程技术网

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也许我表达得不好。我想要一个两列矩阵。在其中,第一列包含变量值,第二列包含最后一个矩阵中的变量名。@这两列都表示您不能这样做。矩阵中的所有元素都必须是同一类型。你可以把数字和字符元素放在一起。也许我表达得不好。我想要一个两列矩阵。在其中,第一列包含变量值,第二列包含最后一个矩阵中的变量名。@这两列都表示您不能这样做。矩阵中的所有元素都必须是同一类型。你可以把数字元素和字符元素放在一起。我用什么函数返回?我用什么函数返回?