R 使用不同的数字列重塑数据的形状
我试图绘制不同的图形,将HPI与中值指数进行比较。首先,我的数据与本例中的数据相同,但没有最后三列,我用以下代码对其进行了重塑,使其中一列包含中间值,另一列包含三个HPIR 使用不同的数字列重塑数据的形状,r,reshape,R,Reshape,我试图绘制不同的图形,将HPI与中值指数进行比较。首先,我的数据与本例中的数据相同,但没有最后三列,我用以下代码对其进行了重塑,使其中一列包含中间值,另一列包含三个HPI df %>% pivot_wider(names_from = Index, values_from = Value) %>% pivot_longer(starts_with("HPI"), names_to = "Index", values_to = &qu
df %>%
pivot_wider(names_from = Index, values_from = Value) %>%
pivot_longer(starts_with("HPI"), names_to = "Index", values_to = "Value")
现在,我需要其他三列在图形中添加一个置信区间,但我似乎无法使它起作用
这是我的数据的一个例子
df <- tibble::tribble(
~Index, ~Value, ~Operation, ~Month, ~SD, ~lower, ~upper,
"HPI1", 0.9, "Sale", "01/2020", 0.00224245, 0.9788445 ,0.9876349,
"HPI1", 1.1, "Rent", "02/2020", 0.00227729, 1.0323418, 1.0412688,
"HPI2", 0.89, "Sale", "01/2020", 0.00645641, 1.1494260, 1.1747352,
"HPI2", 1.12, "Rent", "02/2020", 0.00645641, 1.1494260, 1.1747352,
"HPI3", 0.85, "Sale", "01/2020",0.00732540, 1.1376065, 1.1663221,
"HPI3", 1.22, "Rent", "02/2020", 0.00645641, 1.1494260, 1.1747352,
"Median", 0.91, "Sale", "01/2020",0.00732540, 1.1376065, 1.1663221,
"Median", 1.02, "Rent", "02/2020",0.00732540, 1.1376065, 1.1663221,
"HPI1", 0.9, "Sale", "02/2020",0.00224245, 0.9788445 ,0.9876349,
"HPI1", 1.1, "Rent", "03/2020", 0.00645641, 1.1494260, 1.1747352,
"HPI2", 0.89, "Sale", "02/2020", 0.00227729, 1.0323418, 1.0412688,
"HPI2", 1.12, "Rent", "03/2020", 0.00645641, 1.1494260, 1.1747352,
"HPI3", 0.85, "Sale", "02/2020",0.00224245, 0.9788445 ,0.9876349,
"HPI3", 1.22, "Rent", "03/2020",0.00732540, 1.1376065, 1.1663221,
"Median", 0.91, "Sale", "02/2020",0.00227729, 1.0323418, 1.0412688,
"Median", 1.02, "Rent", "03/2020",0.00732540, 1.1376065, 1.1663221,
"HPI1", 0.9, "Sale", "03/2020", 0.00645641, 1.1494260, 1.1747352,
"HPI1", 1.1, "Rent", "04/2020",0.00224245, 0.9788445 ,0.9876349,
"HPI2", 0.89, "Sale", "03/2020",0.00732540, 1.1376065, 1.1663221,
"HPI2", 1.12, "Rent", "04/2020",0.00227729, 1.0323418, 1.0412688,
"HPI3", 0.85, "Sale", "03/2020", 0.00645641, 1.1494260, 1.1747352,
"HPI3", 1.22, "Rent", "04/2020",0.00224245, 0.9788445 ,0.9876349,
"Median", 0.91, "Sale", "03/2020",0.00227729, 1.0323418, 1.0412688,
"Median", 1.02, "Rent", "04/2020",0.00732540, 1.1376065, 1.1663221)
df这可能是一种可行的方法,无需将pivot\u使用得更广
和pivot\u使用得更长
:
图书馆(dplyr)
图书馆(lubridate)
图书馆(GG2)
#月为日期格式
df%
变异(月=我的(月))
#每月HPI指数的所有情况以及与仅中值数据连接的操作,以便为刻面中线创建单独的数据框
df_hpi%
过滤器(索引!=“中值”)%>%
选择(索引、月份、操作)
#各方面情况的中值数据框架:指数和按月计算的数值
df_med%
过滤器(索引=“中值”)%>%
重命名(数据集=索引)%>%
右联接(df_hpi,by=c(“月”=“月”,“操作”=“操作”))
#仅限HPI数据
df1%
过滤器(索引!=“中值”)
#所有这些都在调用ggplot中
ggplot(df1,aes(月,值,组=指数))+
geom_线()+
几何线(数据=df\U med,aes(color=“Median”))+
平面网格(操作~索引)+
实验室(颜色=空)+
主题(legend.position=“底部”)
由(v2.0.0)创建于2021-04-13我知道您正在尝试这样做:一条线和一条带状线(置信区间)。
但是您列“lower”的值似乎不正确
相反,我使用了“SD”列
库(tidyverse)
图书馆(lubridate)
图书馆(GG2)
df%
突变(月=我的(月),
ymin=值-2*SD,
ymax=值+2*SD)%>%
ggplot()+
geom_线(aes)(
x=月,
y=值,
组=操作,
颜色=操作
)) +
geom_丝带(aes)(
x=月,
ymin=ymin,
ymax=ymax,
组=操作,
填充=操作
),
α=0.3)+
面包(~索引)+
主题灯()+
实验室(x=NULL,y=NULL)
你想画什么?您能描述一下预期的输出图吗:可能是一个包含HPI1-3的四条线和按月(x轴)的中值(y轴)的线图,按操作分面?以及该值的上限和下限的一些指标。下限和上限值与什么有关?它们通常似乎大于或小于值
,但似乎没有“括号”值
对不起。我只是编造了这些数据,现在回想起来,这些数字毫无意义。下限和上限是置信区间的边界。我需要按索引和操作划分网格,但我也需要中间值作为另一列,这样我就可以为每个HPI+中间值绘制一个图,这很有帮助,建议的解决方案可以在不扩大或延长轴心的情况下管理这一点。没有尝试合并上层或下层数据,因为这在任何情况下似乎有点不协调,如果需要,应该非常自然地流动。