【发布时间】:2016-11-29 08:51:30
【问题描述】:
我有这段代码,我在其中加载了 CSV。这意味着删除具有相同值、字符、字符串等的重复行。在特定变量上,在本例中为 ID、DATE 和 Dx。
> alt
ID RISK GENDER STATUS AGE DAY MONTH YEAR DATE SALA Dx DAY2 MONTH2 YEAR2 DATE2 Dx1 STATE1
1 740010662 5 2 2 23 29 12 2009 40176 13 Z33.X 1 1 2010 40179 O82.9 please
2 347866388 5 2 1 23 31 12 2009 40178 13 O06.4 1 1 2010 40179 O06.4 help
3 705280124 5 2 2 33 31 12 2009 40178 13 Z33.X 1 1 2010 40179 O80.9 me
4 791125002 5 2 1 30 30 12 2009 40177 13 O33.5 1 1 2010 40179 O82.9 im
5 469833092 5 2 1 26 31 12 2009 40178 13 Z33.X 1 1 2010 40179 O80.9 really
6 855318644 5 2 1 35 30 12 2009 40177 13 O47.9 1 1 2010 40179 O80.9 desperate
7 410886387 5 2 2 29 31 12 2009 40178 13 Z33.X 1 1 2010 40179 O80.9 been
8 486326736 5 2 1 37 30 12 2009 40177 13 O72.0 1 1 2010 40179 O82.9 banging
9 995190824 5 2 1 22 1 1 2010 40179 13 Z33.X 1 1 2010 40179 O80.9 my
10 896565718 5 2 1 28 30 12 2009 40177 13 Z33.X 1 1 2010 40179 O82.9 head
11 347866388 5 2 1 23 31 12 2009 40178 13 O06.4 1 1 2010 40179 O06.4 to
12 855318644 5 2 1 35 30 12 2009 40177 13 O47.9 1 1 2010 40179 O80.9 the
13 995190824 5 2 1 22 1 1 2010 40179 13 Z33.X 1 1 2010 40179 O80.9 wall
首先我加载了 csv
#1.Load database
BU<-read.csv(choose.files(),header = T,)
alt<- BU
后跟这段代码
# 2.eliminates duplicates according to multiple variables
# df1<-data frame with unique observations
# df2<-dataframe with duplicated observations
df1 <- alt[ !( duplicated(alt[,1]) & duplicated(alt[,9]) & duplicated(alt[,11]) ), ]
df2 <- alt[ !(!( duplicated(alt[,1]) & duplicated(alt[,9]) & duplicated(alt[,11]) )), ]
瞧,它起作用了,这就是结果。
> df1
ID RISK GENDER STATUS AGE DAY MONTH YEAR DATE SALA Dx DAY2 MONTH2 YEAR2 DATE2 Dx1 STATE
1 740010662 5 2 2 23 29 12 2009 40176 13 Z33.X 1 1 2010 40179 O82.9 please
2 347866388 5 2 1 23 31 12 2009 40178 13 O06.4 1 1 2010 40179 O06.4 help
3 705280124 5 2 2 33 31 12 2009 40178 13 Z33.X 1 1 2010 40179 O80.9 me
4 791125002 5 2 1 30 30 12 2009 40177 13 O33.5 1 1 2010 40179 O82.9 im
5 469833092 5 2 1 26 31 12 2009 40178 13 Z33.X 1 1 2010 40179 O80.9 really
6 855318644 5 2 1 35 30 12 2009 40177 13 O47.9 1 1 2010 40179 O80.9 desperate
7 410886387 5 2 2 29 31 12 2009 40178 13 Z33.X 1 1 2010 40179 O80.9 been
8 486326736 5 2 1 37 30 12 2009 40177 13 O72.0 1 1 2010 40179 O82.9 banging
9 995190824 5 2 1 22 1 1 2010 40179 13 Z33.X 1 1 2010 40179 O80.9 my
10 896565718 5 2 1 28 30 12 2009 40177 13 Z33.X 1 1 2010 40179 O82.9 head
> df2
ID RISK GENDER STATUS AGE DAY MONTH YEAR DATE SALA Dx DAY2 MONTH2 YEAR2 DATE2 Dx1 STATE
11 347866388 5 2 1 23 31 12 2009 40178 13 O06.4 1 1 2010 40179 O06.4 to
12 855318644 5 2 1 35 30 12 2009 40177 13 O47.9 1 1 2010 40179 O80.9 the
13 995190824 5 2 1 22 1 1 2010 40179 13 Z33.X 1 1 2010 40179 O80.9 wall
有效。因为它删除了第 11,12 和 13 行,它们是第 2,6 和 9 行的重复。
然而,原始数据库包含大约 18,000 个观察值和 27 个变量,并且代码失败。它似乎只根据一两个变量而不是三个变量 ID、DATE 和 Dx 来考虑重复。
【问题讨论】:
标签: r dataframe duplicates multiple-columns