the desired graph but in 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
发布于 2019-07-03 02:19:17
逗号用作小数点,因此应在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 = ',')
然后,如果您将company作为因子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))
https://stackoverflow.com/questions/56852683
复制相似问题