1

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

数据来自两个 CSV 文件,一个提供人口统计数据,另一个提供参与者对许多问题的概率评分。这两个 CSV 文件都是长格式。

我使用了 reshape(和 reshape2 以提高速度)包来尝试解决我的问题。我遇到的具体问题如下。我有以下形式的参与者概率评级(在成功重塑之后)。

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

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

我尝试了一个循环并申请将这些值放入一个新的数据框中,以及许多熔化和铸造的变体。我也尝试过基础重塑功能,但都无济于事。

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

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

4

1 回答 1

2

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

我认为很难为您完成这项工作,因为您不清楚您想要做什么。您有每个 UID-Time-X### 单元格的值,以及每个 UID-Prob-X### 单元格的值。因此,您必须丢弃信息才能将其转换为您喜欢的格式(UID-Time-X### 以概率为值)。在我看来,您将时间视为 ID 变量,但它像内容变量一样存储值。

为避免丢弃任何数据,您的输出必须类似于: UID Time1 Time2 Time3 Prob1 Prob2 Prob3

这是简单地重塑宽。

于 2011-03-26T20:13:35.880 回答