首页 > 解决方案 > 在 R 中创建显示多个行业的异常回报发展的 geom_table 时出错

问题描述

所需的图表,但在 R你好,我在 R 中很新,我在尝试创建 ggpolt geom_line 以可视化所选 5 家公司的异常回报的发展时遇到问题。但我收到一条错误消息,说“is.list(x) 中的错误:维数不正确”,我不明白。

谁能帮我理解这个错误,我该如何解决?

到目前为止我所做的是:

绘制金融行业的所有行

 df <- read.table(text="AR-5    AR-4    AR-3    AR-2    AR-1    AR0 AR1 AR2 AR3 AR4 AR5 AR6 AR7 AR8 AR9 AR10
+ -0,0069   0,0157  0,0175  -0,0087 -0,0108 -0,0038 -0,0136 -0,0077 0,0135  -0,0024 -0,0190 0,0119  0,0100  0,0041  0,0044  -0,0287
+ -0,0008   0,0012  -0,0088 0,0032  -0,0017 0,0088  -0,1461 -0,0968 0,0208  -0,1597 -0,0234 -0,0413 0,0128  0,0034  0,0105  0,0254
+ -0,0032   0,0128  0,0029  0,0014  0,0010  -0,0059 -0,0074 -0,0855 0,0001  -0,0011 0,0111  0,0045  0,0002  0,0024  -0,0146 0,0007
+ -0,0637   -0,0043 0,0003  0,0208  -0,0246 -0,0890 -0,0630 -0,0534 -0,0071 0,0239  -0,0151 0,0054  -0,0083 0,0078  0,0327  -0,0541
+ -0,0054   -0,0029 -0,0007 0,0019  0,0077  -0,0088 0,0119  0,0000  0,0025  -0,0009 0,0021  0,0039  0,0131  -0,0046 -0,0338 -0,0081", header = T)
 df <- melt(df)
 df$company <- 1:5
 head(df, 11)

ggplot(df, aes(x=df$company[1:16, 0], y=df$company)[1:16, 1:5], group=factor(company)) +
+geom_line(aes(color=factor(company)

))

Error in is.list(x) : incorrect number of dimensions

y轴应该是数值,r轴只是每天异常收益的标题,即AR-2、AR-1、AR0、AR1

标签: r

解决方案


逗号用作小数点,因此将在 read.table 调用中包含 dec=',' (否则将值视为因素):

df <- read.table(text="AR-5    AR-4    AR-3    AR-2    AR-1    AR0 AR1 AR2 AR3 AR4 AR5 AR6 AR7 AR8 AR9 AR10
 -0,0069   0,0157  0,0175  -0,0087 -0,0108 -0,0038 -0,0136 -0,0077 0,0135  -0,0024 -0,0190 0,0119  0,0100  0,0041  0,0044  -0,0287
 -0,0008   0,0012  -0,0088 0,0032  -0,0017 0,0088  -0,1461 -0,0968 0,0208  -0,1597 -0,0234 -0,0413 0,0128  0,0034  0,0105  0,0254
 -0,0032   0,0128  0,0029  0,0014  0,0010  -0,0059 -0,0074 -0,0855 0,0001  -0,0011 0,0111  0,0045  0,0002  0,0024  -0,0146 0,0007
 -0,0637   -0,0043 0,0003  0,0208  -0,0246 -0,0890 -0,0630 -0,0534 -0,0071 0,0239  -0,0151 0,0054  -0,0083 0,0078  0,0327  -0,0541
 -0,0054   -0,0029 -0,0007 0,0019  0,0077  -0,0088 0,0119  0,0000  0,0025  -0,0009 0,0021  0,0039  0,0131  -0,0046 -0,0338 -0,0081", header = T, dec = ',')

然后,如果您将公司作为因素 1 到 5 包括在内,您可以使用您的熔体来使数据变长:

df$company <- as.factor(1:5)
df.melt <- melt(df, id = "company")

> head(df.melt, 10)
   company variable   value
1        1     AR.5 -0.0069
2        2     AR.5 -0.0008
3        3     AR.5 -0.0032
4        4     AR.5 -0.0637
5        5     AR.5 -0.0054
6        1     AR.4  0.0157
7        2     AR.4  0.0012
8        3     AR.4  0.0128
9        4     AR.4 -0.0043
10       5     AR.4 -0.0029

然后使用ggplot。注意:不需要像以前那样在 aes() 中再次包含 df 。

ggplot(df.melt, aes(x = variable, y = value, group = company)) +
  geom_line(aes(color=company))

推荐阅读