2012-02-26 51 views
0

我對R很新,但遇到了在R中刪除不需要的行的問題。所以我得到的是一個物種distrubtion數據的文件。我需要根據XY座標對整個數據集進行排序,並將數據投影到ArcGIS上。問題是在相同的XY座標上有多個相同物種的條目,所以我必須在相同的XY座標上移除重複的行。如何根據R中的過濾結果刪除不需要的行R

這裏的數據是如何看起來一個小例子:

SpeciesID X  Y 
38   333500 96500 
38   333500 96500 

在這裏,我需要保持與ID 38種的第一行,但刪除第二行。

由於

約旦

+0

可能重複[如何被列在矩陣中刪除重複的行在R](http://stackoverflow.com/questions/6835753/how-to-remove-duplica ted-row-by-a-column-in-a-matrix-in-r) – 2012-02-26 15:14:06

+0

也相關:http://stackoverflow.com/questions/7854433/finding-all-duplicate-rows-including-elements-with-較小標 – 2012-02-26 15:15:01

回答

1

unique返回一個矢量,數據幀或陣列等除去X但隨着重複的元素/行。

> x = read.table(file='input.txt', header=TRUE) 
> x 
    SpeciesID  X  Y 
1  38 333500 96500 
2  38 333500 96500 
> unique(x) 
    SpeciesID  X  Y 
1  38 333500 96500 
> 
1

使用unique(),如:

> df <- data.frame(SpeciesID=c("38", "38"), X=c("333500", "333500"), Y=c("96500", "96500")) 
> unique(df) 
    SpeciesID  X  Y 
1  38 333500 96500 
1

查找?duplicated?unique

df <- data.frame(); 
df <- rbind(df, c(38,333500,96500)) 
df <- rbind(df, c(38,333500,96500)) 
colnames(df) <- c("SpeciesID", "X", "Y") 

df[!duplicated(df$SpeciesID),]