我有什么似乎是一个简单的要求,但我似乎无法达到预期的结果。我的数据帧是相当大的,所以我会给一个截图:基于另一个数据框创建列
我想要的是:if ps2c$ps == present2$pn then ps2c$sf == present2$sf
。
如果不清楚,每ps2c$ps
有一个present2$pn
(present2只是平均数据)。
我有什么似乎是一个简单的要求,但我似乎无法达到预期的结果。我的数据帧是相当大的,所以我会给一个截图:基于另一个数据框创建列
我想要的是:if ps2c$ps == present2$pn then ps2c$sf == present2$sf
。
如果不清楚,每ps2c$ps
有一个present2$pn
(present2只是平均数据)。
你没有提供的测试数据,但类似以下可能的工作:
ps2c$sf <- present2$sf[match(ps2c$ps, present2$pn)]
完美的作品。非常感谢您的帮助。 – 2011-04-11 09:28:16
我正在使用一个包含7200万个观察值的数据集,并且我正在尝试使用涉及foreach函数的非直观例程来完成这项任务。我测试了它大约1/1000的数据集,花了20多分钟。用你的解决方案,整个数据集花费了一秒钟。我不能够感谢你。 R真的很厉害,我迫不及待地想要做到! – Vivi 2012-06-22 19:27:58
屏幕截图?你在跟我开玩笑吗? ;-)认真地说,只需将'head(ps2c)'和'head(present2)'的输出粘贴到Q中,选择粘贴的代码/输出,然后单击工具栏中的代码按钮(看起来像大括号'{}')或按'Ctrl + k'使您的代码格式适当。 – 2011-04-11 09:52:02
我的数据框很大,但我会牢记你的建议。 – 2011-04-11 10:02:47
但head()只显示前几行 - 我的观点是,如果你能显示截图,你可以显示代码和'head()'的输出。 – 2011-04-11 10:45:50