根据另一个数据框创建列

5
我有一个看似简单的需求,但我似乎无法达到预期的结果。我的数据框很大,所以我只会给出一个截图:enter image description here 我的想法是:如果ps2c$ps == present2$pn,则ps2c$sf == present2$sf
如果不清楚,对于每个ps2c$ps,都有一个present2$pn(present2仅为平均数据)。

5
截图?你在开玩笑吧?;-)认真点,只需粘贴 head(ps2c)head(present2) 的输出内容到您的问题中,选择所粘贴的代码/输出,并点击工具栏中的代码按钮(看起来像大括号{}的那个)或按下 Ctrl+k 以适当格式化您的代码。 - Gavin Simpson
1
我的数据框架非常庞大,但我会记住你的建议。 - Frank Zafka
1
但是 head() 只显示前几行 - 我的意思是,如果你可以展示一个截图,你就可以展示 head() 的代码和输出。 - Gavin Simpson
2
dput(head(ps2c)) 给出了数据框的前6行的表示形式,我们可以直接运行而无需编辑任何内容。或者,您可以构建一个玩具数据集来展示您想要的内容。 - Joris Meys
@Joris - 这是一个很好的观察,有助于提供小的数据片段以进行说明。 - Gavin Simpson
1个回答

10

你没有提供测试数据,但以下类似的代码可能会起作用:

ps2c$sf <- present2$sf[match(ps2c$ps, present2$pn)]

2
我正在处理一个包含7200万条记录的数据集,并尝试使用不太直观的foreach函数来完成任务。我对其中1/1000的数据进行了测试,结果花费了超过20分钟的时间。但是使用你提供的解决方案,整个数据集只需要一秒钟就能完成。我无法感谢你的足够了。R真的很棒,我迫不及待地想要熟练掌握它! - Vivi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接