【发布时间】:2014-01-26 20:15:51
【问题描述】:
我有一个非常大的数据集,所以我想避免循环。
我有三列数据:
col1 = 时间表示为 10000, 10001, 10002, 10100, 10101, 10102, 10200、10201、10202、10300、...(共18000次)
col2 = id 编号 1 2 3 4 ...(总共 500 个 id)
col3 = 在特定时间与特定 id 关联的读数。 0.1 0.5 0.6 0.7...说这叫Data3
10000 1 0.1
10001 1 0.5
10002 1 0.6
10100 1 0.7
10200 1 0.6(注意 - 缺少一些随机条目)
我想将其呈现为矩阵(称为 DataMatrix),但缺少数据,因此无法进行简单的重塑。我想将丢失的数据作为 NA 条目。
DataMatrix目前是一个500列18000行的NA矩阵,其中行名和列名分别是时间和id。
1 2 3 4 ....
10000 NA NA NA NA ....
10001 NA NA NA NA ....
有没有办法让 R 遍历 Data3 的每一行,通过将 Data3[,3] 放置在名称与 Data3[,1] 相关的矩阵的行和列中来完成 DataMatrix和数据3 [,2]。但没有循环。
感谢所有聪明的人。
【问题讨论】:
-
为什么说“有数据缺失,所以简单的reshape 不行”?你试过了吗?什么对解决方案不起作用?如果您提供一个(小)可重现的示例来展示您预期会遇到的情况/问题,那么您更有可能获得有意义的帮助。
-
library(reshape2); DataMatrix <- dcast(Data3, col1~col2, value.var="col3")呢? -
谢谢阿南达 - 你是对的 - 玩耍绝对是前进的方向。我认为可能有一些我不知道的匹配或查找功能。丢失的数据意味着 Data3 不是 18000*500 长,而是更少。因此,重塑灾难。