如何在 R 資料框列中提取不重複的值?
通常,重複值是在第一次出現後才被考慮,但值的第一次出現也是其餘重複值的副本。因此,我們可能也希望將其排除。
藉助 `duplicated` 函式和否定運算子,可以輕鬆地從 R 資料框列中提取不重複的值,如下面的示例所示。
示例 1
以下程式碼片段建立了一個示例資料框:
x<-rpois(20,10) df1<-data.frame(x) df1
建立了以下資料框
x 1 16 2 5 3 17 4 7 5 6 6 7 7 14 8 10 9 7 10 13 11 11 12 15 13 4 14 10 15 16 16 11 17 10 18 11 19 9 20 11
為了從上面建立的資料框的 x 中提取不包含第一次重複的不重複值,請將以下程式碼新增到上面的程式碼片段中:
x<-rpois(20,10) df1<-data.frame(x) df1$x[!(duplicated(df1$x)|duplicated(df1$x,fromLast=TRUE))]
輸出
如果您將以上所有程式碼片段作為單個程式執行,則會生成以下輸出:
[1] 5 17 6 14 13 15 4 9
示例 2
以下程式碼片段建立了一個示例資料框:
y<-sample(1:10,20,replace=TRUE) df2<-data.frame(y) df2
建立了以下資料框
y 1 8 2 10 3 1 4 5 5 5 6 2 7 1 8 2 9 6 10 7 11 10 12 5 13 7 14 4 15 2 16 1 17 6 18 5 19 10 20 7
為了從上面建立的資料框的 y 中提取不包含第一次重複的不重複值,請將以下程式碼新增到上面的程式碼片段中:
y<-sample(1:10,20,replace=TRUE) df2<-data.frame(y) df2 df2$y[!(duplicated(df2$y)|duplicated(df2$y,fromLast=TRUE))]
輸出
如果您將以上所有程式碼片段作為單個程式執行,則會生成以下輸出:
[1] 8 4
示例 3
以下程式碼片段建立了一個示例資料框:
z<-sample(501:510,20,replace=TRUE) df3<-data.frame(z) df3
建立了以下資料框
z 1 509 2 507 3 504 4 508 5 502 6 510 7 508 8 506 9 503 10 508 11 507 12 508 13 502 14 508 15 506 16 510 17 505 18 510 19 510 20 505
為了從上面建立的資料框的 y 中提取不包含第一次重複的不重複值,請將以下程式碼新增到上面的程式碼片段中:
z<-sample(501:510,20,replace=TRUE) df3<-data.frame(z) df3$z[!(duplicated(df3$z)|duplicated(df3$z,fromLast=TRUE))]
輸出
如果您將以上所有程式碼片段作為單個程式執行,則會生成以下輸出:
[1] 509 504 503
廣告