如何在 R 資料框中使所有值唯一?


為了使 R 資料框中的所有值唯一,我們可以使用 make.unique 函式,但首先我們需要將資料框值展開並使用 as.character 讀取它們。例如,如果我們有一個名為 df 的資料框,其中包含重複值和非重複值,那麼我們可以使用以下命令使所有值唯一:-

df[]<-make.unique(as.character(unlist(df)))

示例 1

以下程式碼片段建立了一個示例資料框:-

x<-rpois(20,1)
df1<-data.frame(x)
df1

建立了以下資料框

   x
1  0
2  0
3  1
4  1
5  1
6  0
7  2
8  0
9  1
10 0
11 0
12 0
13 1
14 2
15 1
16 1
17 0
18 0
19 1
20 1

要在上面建立的資料框上使 df1 中的所有值唯一,請將以下程式碼新增到上述程式碼片段中:-

x<-rpois(20,1)
df1<-data.frame(x)
df1[]<-make.unique(as.character(unlist(df1)))
df1

輸出

如果您將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出:-

     x
1    0
2  0.1
3    1
4  1.1
5  1.2
6  0.2
7    2
8  0.3
9  1.3
10 0.4
11 0.5
12 0.6
13 1.4
14 2.1
15 1.5
16 1.6
17 0.7
18 0.8
19 1.7
20 1.8

示例 2

以下程式碼片段建立了一個示例資料框:-

y<-sample(letters[1:5],20,replace=TRUE)
df2<-data.frame(y)
df2

建立了以下資料框

   y
1  c
2  a
3  b
4  c
5  c
6  d
7  a
8  a
9  e
10 a
11 c
12 c
13 c
14 a
15 c
16 b
17 c
18 c
19 d
20 b

要在上面建立的資料框上使 df2 中的所有值唯一,請將以下程式碼新增到上述程式碼片段中:-

y<-sample(letters[1:5],20,replace=TRUE)
df2<-data.frame(y)
df2[]<-make.unique(as.character(unlist(df2)))
df2

輸出

如果您將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出:-

     y
1    c
2    a
3    b
4  c.1
5  c.2
6    d
7  a.1
8  a.2
9    e
10 a.3
11 c.3
12 e.1
13 c.4
14 a.4
15 c.5
16 b.1
17 c.6
18 c.7
19 d.1
20 b.2

更新於: 2021年11月3日

390 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告