【发布时间】:2019-11-11 08:00:09
【问题描述】:
我有一张(学校)表格,它是由关于学生、学校类型等的数据加上 x 和 y 坐标制成的。我想创建一个显示所有学校的地图。但是有些学校在同一个地址有两个或多个不同的学校类型。所以 x- 和 y- 是相同的,我不能在地图上同时显示,因为标记位于确切的位置。现在我想稍微改变多组坐标之一的 x 坐标 (X_CO)。
我的任务是找到一种方法来选择一对重复项中的一个实例并改变“X_CO”行:
如果第一个(或最后一个)重复==TRUE 那么mutate(dat$X_CO=dat$X_CO+0.00015)。否则没有变化。这适用于表的每个实例。并重复两个以上具有相同坐标的实例的情况。
我尝试过duplicated(dat$X_CO),但这让我对 Name_B 和 Name_D 都是正确的。任何建议都会被赞赏:)
Data_have <- data.frame(
Name = c("Name_A","Name_B","Name_C","Name_D"),
X_CO = c(8.456,8.456,9.876,8.456)
)
Data_want <- data.frame(
Name = c("Name_A","Name_B","Name_C","Name_D"),
X_CO = c(8.456,8.457,9.876,8.458)
)
【问题讨论】:
-
您分享的示例中没有重复项。
Name_B的号码有何变化? -
“重复”在“X_CO”列中。它不是完整的行。改变是我想要的。
-
那么
have$X_CO[duplicated(have$X_CO)] <- have$X_CO[duplicated(have$X_CO)] + 0.00015? -
是的,但
duplicated(have$X_CO)给了我 TRUE Name_A 和 Name_B。 -
不它应该只为第二个名字给出 TRUE...我得到
duplicated(have$X_CO) [1] FALSE TRUE FALSE。我添加了一个答案。看看
标签: r if-statement duplicates dplyr