R 删除字符向量中的重复元素,而不是重复的行

标签 r duplicates

我遇到了这个问题。

我有一个数据框(日期),其中一些文档 ID 和日期存储在字符向量中:

  Doc     Dates
1 12345 c("06/01/2000","08/09/2002")
2 23456 c("07/01/2000", 09/08/2003", "07/01/2000")
3 34567 c("09/06/2004", "09/06/2004", "12/30/2006")
4 45678 c("06/01/2000","08/09/2002")

我正在尝试删除日期中的重复元素以获得此结果:
  Doc     Dates
1 12345 c("06/01/2000","08/09/2002")
2 23456 c("07/01/2000", 09/08/2003")
3 34567 c("09/06/2004", "12/30/2006")
4 45678 c("06/01/2000","08/09/2002")

我试过了:
R>unique(dates$dates)

但它按日期删除重复的行:
  Doc     Dates
1 12345 c("06/01/2000","08/09/2002")
2 23456 c("07/01/2000", 09/08/2003")
3 34567 c("09/06/2004", "12/30/2006")

关于如何仅删除日期中的重复元素而不是按日期删除重复的行的任何帮助?

** 更新数据
# Match some text string (dates) from some text:

df1$dates <- as.character(strapply(df1[[2]], "((\\D\\d{1,2}(/|-)\\d{1,2}(/|-)\\d{2,4})|    ([^/]\\d{1,2}(/|-)\\d{2,4})|((JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV){1}[\\s|-]{0,2}\\d{1,4}(\\D[\\s|-]{0,}\\d{2,4}){0,}))"))

# Drop first 2 columns from dataframe
df2<-df1[ -c(1,2)]

# List data
>df2
872                     7/23/2007
873 c(" 11/4/2007", " 11/4/2007")
874   c(" 4/2/2008", " 8/2/2007")
880                    11/14/2006

> class(df2)
[1] "data.frame"

> class(df2$dates)
[1] "character"

> dput(df2)
structure(list(dates = c("NULL", "NULL", " 7/23/2007", "c(\" 11/4/2007\", \" 11/4/2007\")", 
"c(\" 4/2/2008\", \" 8/2/2007\")", "NULL", "NULL", "NULL", "NULL", 
"NULL", " 11/14/2006")), .Names = "dates", class = "data.frame", row.names = 870:880)

所以我的问题是如何摆脱第 873 行中的重复日期?

最佳答案

尝试这个:

within(dates, Dates <- lapply(Dates, unique))

关于R 删除字符向量中的重复元素,而不是重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17452584/

相关文章:

python - 为什么使用 .loc[] 访问 pandas 数据帧的列会产生重复的行?

python - 搜索多个目录,删除重复文件

python - 从数组中提取重复值和位置的列表

r - 在多列中查找重叠段

r - 在 dplyr 中使用 mutate_all 格式化所有列

将向量中的数字元素替换为 R 中的字符元素

r - 检查其他 data.table 中 data.table 值的频率

r - R : separate numbers by hyphen, 中的连续引用编号如果是连续的 - 如果不是则添加逗号

python - 如何在列表中查找重复值并合并它们

c# - 防止重复的 List<T> 条目