无法使用重塑包将我的数据变为宽泛的形式

时间:2011-03-26 18:44:25

标签: r reshape

我目前正在分析一个相当大的数据集(22k +记录),并且在将数据转换为宽格式时遇到一些问题(每行对应一行,代表变量的列)。

数据有两个CSV文件,一个给出人口统计信息,另一个给参与者一些问题的概率评级。这两个CSV文件都是长格式的。

我使用了reshape(和reshape2 for speed)包试图解决我的问题。我遇到的具体问题如下。 我有以下形式的参与者概率评级(在一次成功重塑之后)。

dtf <- read.csv("http://dl.dropbox.com/u/8566396/foobar.csv")

现在,我希望我的数据格式如下: 用户ID Qid1,.... Qid255时间,问题对应列中每个问题的概率。

我尝试了一个循环并应用于将值放入一个新的数据框,以及融化和转换的许多变化。我也尝试了基本重塑功能,但都无济于事。

过去,我总是直接编辑我的CSV文件,但这不是这个文件大小的选项(当我在R中的数据操作时,我的懒惰又回来困扰我)。

您可以提供任何建议或解决方案,以避免我不得不手动执行此操作,我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

您的数据集有6行,其中3行的“变量”列等于“概率”,其中3行的列等于“时间”。您希望概率为每个的值,并将时间添加到右侧。

我认为让这项工作很困难,因为你想做的事情并不清楚。您有每个UID-Time-X ###单元格的值,以及每个UID-Prob-X ###单元格的值。因此,您必须丢弃信息以使其成为您的首选格式(UID-Time-X ###,其概率为值)。在我看来,你把时间视为一个ID变量,但它存储的值就像一个内容变量。

为避免丢弃任何数据,您的输出必须如下所示: UID Time1 Time2 Time3 Prob1 Prob2 Prob3

这简单地重塑了。