この問題でレンガの壁に当たっています。R重複する行ではなく、文字ベクタ内の重複する要素を削除します。
私は文字ベクトルに保存されているいくつかの文書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")
私はこの結果を得るために日付で重複要素を削除しようとしています:
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")
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")
日付の重複要素のみを削除し、重複行を日付で削除しない方法についてのヘルプはありますか?データ
# 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内の重複する日付を取り除くためにどのようにでしょうか?私は日付でc(
と)
をgsub
なり、その後、行ごとに、私は,
テストされていないが、おそらく何かなどを使用してのstrsplit
にunique
を呼ぶだろう
within(dates, Dates <- lapply(Dates, unique))
'dput(dates)'の出力を提供してください。データを再作成するのではなく、コピー/ペーストするだけです。 – Arun