我似乎很难使用dplyr中的duplicateddistinct函数来删除重复项.我不知道问题出在哪里,但有谁能帮忙吗?以下是作为示例的一小部分数据:

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

推荐答案

这个问题是由于浮点精度造成的. 时间戳仅复制到小数点后的某一位.

解决此问题的一种方法是四舍五入,然后应用filter()distinct():

df %>%
  mutate(timestamp1 = round(timestamp, 0)) %>% 
  filter(!duplicated(timestamp1)) %>% 
  select(-timestamp1)

 timestamp                      id  condition
1 1495115681 2017-05-18-145157833880 childchild

R相关问答推荐

如何在ggplot 2线性图的每个方面显示每个组的误差条?

从gtsummary包中使用tBL_strata()和tBL_summary()时删除变量标签

gt()从gt为相同内容的单元格 colored颜色 不同?

从R导出全局环境中的所有sf(numrames)对象

如何在kableextra调用cell_spec()中忽略NA?

条形图和在Ploly中悬停的问题

计算两列中满足特定条件连续行之间的平均值

如何在PackageStatus()中列出&q;不可用的包&q;?

悬崖三角洲超大型群数计算导致整数溢出

将多个列值转换为二进制

将箭头绘制在图形外部,而不是图形内部

有没有可能用shiny 的书签恢复手风琴面板?

R中治疗序列的相对时间指数

我需要使用ggplot2制作堆叠条形图

在同一单元格中创建包含整数和百分比的交叉表

R try Catch in the loop-跳过缺少的值并创建一个DF,显示跳过的内容

如果极点中存在部分匹配,则替换整个字符串

如何捕获这个shiny 的、可扩展的react 性用户输入矩阵作为另一个react 性对象,以便进一步操作?

使用卡环从R中的列中删除单位(&C)

如何根据顺序/序列从数据框中排除值