在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
廣告