【发布时间】:2019-10-11 17:20:20
【问题描述】:
我正在尝试用另外两列中的值替换两列中的值。这是一个相当基本的问题,有人问过bypythonusers,但是我使用的是 R。
我有一个看起来像这样的df(仅在更大的范围内 [>20,000]):
squirrel_id locx locy dist
6391 17.5 10.0 50.0
6391 17.5 10.0 20.0
6391 17.5 10.0 15.5
8443 20.5 1.0 800
6025 -5.0 -0.5 0.0
对于 63 只松鼠,我需要替换它们的 locx 和 locy 值。
我通常用以下代码替换值:
library(dplyr)
df <- df %>%
mutate(locx = ifelse (squirrel_id=="6391", "12.5", locx),
locy = ifelse (squirrel_id=="6391", "15.5", locy),
locx = ifelse (squirrel_id=="8443", "2.5", locx),
locy = ifelse (squirrel_id=="8443", "80", locy)) #etc for 63 squirrels
这会给我:
squirrel_id locx locy dist
6391 12.5 10.0 50.0
6391 12.5 10.0 20.0
6391 12.5 10.0 15.5
8443 2.5 80.0 800
6025 -5.0 -0.5 0.0
但这会创建额外的 126 行代码,我怀疑有更简单的方法可以做到这一点。
我确实在单独的df 中拥有所有新的locx 和locy 值,但我不知道如何通过squirrel_id 加入这两个dataframes 而不会弄乱数据。
df 使用需要替换旧df 中的值:
squirrel_id new_locx new_locy
6391 12.5 15.5
8443 2.5 80
6025 -55.0 0.0
我怎样才能更有效地做到这一点?
【问题讨论】: