【发布时间】:2012-03-27 18:41:42
【问题描述】:
我有一个数据矩阵,m:
12345 12348
2011-05-13 NA 0.18001079
2011-05-16 0.056780170 0.15526660
2011-05-17 0.005848973 0.17363081
2011-05-18 0.096594178 0.20114677
2011-05-19 0.038920055 0.15744843
我有一个数据框,df:
id date
12345 2011-05-13
12345 2011-05-18
12348 2011-05-13
12348 2011-05-19
我想向我的数据框 df 添加一个新条目 e(我认为这是另一个矩阵,但我不确定术语),其中包含我的矩阵中 df 中日期前后 20 天的值。 “有用的一天”是指出现在 rownames(m) 中的一天。
id date e
12345 2011-05-13 [40x1 double matrix]
12345 2011-05-18 [40x1 double matrix]
12348 2011-05-13 [40x1 double matrix]
12348 2011-05-19 [40x1 double matrix]
我可以使用 matrixcalc 中的 shift.down 和 shift.up 来查找当天前后的 20 个“有用天”,我可以使用 match(df$date,rownames(m) 来查找我需要的 m 索引。
但是在这里,我被卡住了。创建和填写新条目 e 以使其包含我需要的信息的最佳方式是什么?我知道当 -20 或 +20 的“有用天数”超出我的信息范围时会有 NA 条目,并且无论如何在 m 内也有 NA 条目。
非常感谢任何帮助。
【问题讨论】:
-
很高兴您在这里提供了示例数据供我们查看,但是在 R 中手动重新创建数据集可能会很痛苦。如果您提供代码来重新创建您正在使用的示例数据,您将获得更快的答案。例如,如果您有
matrixm,那么您只需键入dput(m),您将获得重新创建矩阵的命令,您可以将其粘贴到此处。同样,您可以提供用于获取 20 个“有用天”的代码,以便我们快速重现您的情况。 -
谢谢,我不知道 dput 命令