提问人:cliu 提问时间:6/17/2023 更新时间:6/17/2023 访问量:29
使用重复项或非重复项删除不成功的重复项
Remove duplicates unsuccessful using duplicated or distinct
问:
我似乎很难使用中的 or 函数删除重复项。我不知道问题出在哪里,但谁能帮忙?以下是一小部分数据作为示例:duplicated
distinct
dplyr
df <- data.frame(timestamp = c(1495115680.55608, 1495115680.58941,
1495115680.62274), id = c("2017-05-18-145157833880", "2017-05-18-145157833880",
"2017-05-18-145157833880"), condition = c("childchild", "childchild",
"childchild"))
这两个函数都无法删除重复项
df %>%
filter(!duplicated(timestamp))
distinct(df, timestamp, .keep_all = TRUE)
timestamp id condition
1 1495115681 2017-05-18-145157833880 childchild
2 1495115681 2017-05-18-145157833880 childchild
3 1495115681 2017-05-18-145157833880 childchild
答:
1赞
TarJae
6/17/2023
#1
该问题是由于浮点精度造成的。 时间戳仅复制到小数点的某个点。
解决此问题的一种方法是四舍五入,然后应用或:filter()
distinct()
df %>%
mutate(timestamp1 = round(timestamp, 0)) %>%
filter(!duplicated(timestamp1)) %>%
select(-timestamp1)
timestamp id condition
1 1495115681 2017-05-18-145157833880 childchild
下一个:操作数据帧并汇总
评论
!duplicated(round(timestamp))
df$timestamp[1]==df$timestamp[2]