0

我在 R 中使用 Sparklines 包并使用 reshapeExt() 函数准备数据集,但遇到了一个非常奇怪的问题。数据集如下所示:

      Company time value
1   Microsoft 1990    11
2 Time Warner 1990    22
3     Verizon 1990    33
4   Microsoft 1991    44
5 Time Warner 1991    55
6     Verizon 1991    66
7   Microsoft 1992    77
8 Time Warner 1992    88
9     Verizon 1992    99

然后我按照教程示例运行这些行:

example <- example[,c("Company","value","time")]
example$time <- as.numeric ( as.character ( example$ time ))
dat <- reshapeExt ( example , idvar =" Company " , varying = list (2))

莫名其妙地,R给了我这个“dat”:

      Company time value  Company 
1   Microsoft    1    11         1
2 Time Warner    1    22         2
3     Verizon    1    33         3
4   Microsoft    1    44         4
5 Time Warner    1    55         5
6     Verizon    1    66         6
7   Microsoft    1    77         7
8 Time Warner    1    88         8
9     Verizon    1    99         9

时间列无缘无故地变成了 1。当我在https://web.warwick.ac.uk/statsdept/user2011/TalkSlides/Contributed/18Aug_0950_FocusVI_4-ReportingData_2-Kowarik.pdf第 18 页实施示例时,这不会发生- 这里发生了什么?

任何帮助表示赞赏

4

1 回答 1

0

8个月后,我不知道它是否对你有用,但是,我遇到了类似的问题,我找到了你的问题。也许这无论如何都会对其他人有所帮助。

首先,证明您在此顺序中只有 3 列:公司、时间、价值

我认为问题是因为数据的顺序,您需要按公司和时间排序:

example <- examplewith(example, order(Company, time)), ]

那么数据将是这样的:

      Company time value
1   Microsoft 1990    11
4   Microsoft 1991    44
7   Microsoft 1992    77
2 Time_Warner 1990    22
5 Time_Warner 1991    55
8 Time_Warner 1992    88
3     Verizon 1990    33
6     Verizon 1991    66
9     Verizon 1992    99

然后使用 reshapeExt,并将 更改varying = list(3)为 3,因为您的值在第三列中。

example2 <- reshapeExt(example, idvar = "Company", varying = list(3))

最终结果是:

      Company time value
1   Microsoft    1    11
4   Microsoft    2    44
7   Microsoft    3    77
2 Time_Warner    1    22
5 Time_Warner    2    55
8 Time_Warner    3    88
3     Verizon    1    33
6     Verizon    2    66
9     Verizon    3    99

我认为会以这种方式工作。谢谢!

于 2016-02-11T15:26:54.303 回答