在R資料框中,根據字元列的值替換數值列的值。


為了在R資料框中根據字元列的值替換數值列的值,我們可以使用帶單方括號的子集和`%in%`運算子,並且值將使用`<−`賦值。

要了解如何做到這一點,請檢視下面給出的示例:

示例1

以下程式碼片段建立一個樣本資料框:

Class<-sample(c("First","Second","Third"),20,replace=TRUE)
Score<-sample(1:100,20)
df1<-data.frame(Class,Score)
df1

建立了以下資料框

   Class  Score
 1 Second 25
 2 First  11
 3 Second 63
 4 Third  77
 5 Third  62
 6 Third  26
 7 First  83
 8 Third  57
 9 First  15
10 Third  16
11 Second  7
12 First  87
13 First  35
14 First  91
15 First  40
16 Second 60
17 Second 81
18 Second 75
19 Second 56
20 Second 32

要在上面建立的資料框中將“Class”列中對應於“Third”的值替換為“Score”列中的35,請將以下程式碼新增到上面的程式碼片段中:

Class<-sample(c("First","Second","Third"),20,replace=TRUE)
Score<-sample(1:100,20)
df1<-data.frame(Class,Score)
df1$Score[df1$Class %in% "Third"]<-35
df1

輸出

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

   Class Score
 1 Second 25
 2 First  11
 3 Second 63
 4 Third  35
 5 Third  35
 6 Third  35
 7 First  83
 8 Third  35
 9 First  15
10 Third  35
11 Second  7
12 First  87
13 First  35
14 First  91
15 First  40
16 Second 60
17 Second 81
18 Second 75
19 Second 56
20 Second 32

示例2

以下程式碼片段建立一個樣本資料框:

Country<-sample(c("UK","UK","USA","Japan","India"),20,replace=TRUE)
Ranks<-sample(1:5,20,replace=TRUE)
df2<-data.frame(Country,Ranks)
df2

建立了以下資料框

 Country Ranks
 1 Japan 3
 2 Japan 3
 3 India 2
 4 India 3
 5 Japan 2
 6 UK    1
 7 Japan 5
 8 UK    5
 9 UK    1
10 UK    4
11 India 4
12 USA   1
13 UK    2
14 UK    5
15 USA   1
16 Japan 3
17 UK    1
18 India 4
19 Japan 3
20 Japan 5

要在上面建立的資料框中將“Country”列中對應於“India”和“Japan”的值替換為“Ranks”列中的3,請將以下程式碼新增到上面的程式碼片段中:

Country<-sample(c("UK","UK","USA","Japan","India"),20,replace=TRUE)
Ranks<-sample(1:5,20,replace=TRUE)
df2<-data.frame(Country,Ranks)
df2$Ranks[df2$Country %in% c("India","Japan")]<-3
df2

輸出

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

Country Ranks
 1 Japan 3
 2 Japan 3
 3 India 3
 4 India 3
 5 Japan 3
 6 UK    1
 7 Japan 3
 8 UK    5
 9 UK    1
10 UK    4
11 India 3
12 USA   1
13 UK    2
14 UK    5
15 USA   1
16 Japan 3
17 UK    1
18 India 3
19 Japan 3
20 Japan 3

更新於:2021年11月9日

895 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告