如何在 R 資料框中將字串轉換為唯一的整數?
要將 R 資料框中的字串轉換為唯一的整數,我們首先需要提取資料框中的唯一字串,然後使用 as.numeric 和 factor 函式在 data.frame 函式內讀取它們。
檢視下面的示例以瞭解其工作原理。
示例 1
考慮以下資料框 -
x1<-sample(c("Hot","Normal","Cold"),20,replace=TRUE)
x2<-sample(c("Hot","Normal","Cold"),20,replace=TRUE)
x3<-sample(c("Hot","Normal","Cold"),20,replace=TRUE)
df1<-data.frame(x1,x2,x3)
df1
建立了以下資料框
x1 x2 x3 1 Hot Normal Hot 2 Hot Hot Normal 3 Hot Normal Hot 4 Hot Cold Normal 5 Hot Cold Hot 6 Hot Hot Cold 7 Hot Cold Cold 8 Normal Cold Cold 9 Hot Normal Cold 10 Hot Hot Hot 11 Normal Normal Hot 12 Normal Normal Normal 13 Hot Hot Cold 14 Normal Cold Cold 15 Hot Hot Hot 16 Cold Hot Normal 17 Hot Hot Hot 18 Hot Hot Cold 19 Hot Cold Cold 20 Cold Hot Hot
要在上面建立的資料框上提取資料框 df1 中的唯一值,請將以下程式碼新增到上面的程式碼段中 -
x1<-sample(c("Hot","Normal","Cold"),20,replace=TRUE)
x2<-sample(c("Hot","Normal","Cold"),20,replace=TRUE)
x3<-sample(c("Hot","Normal","Cold"),20,replace=TRUE)
df1<-data.frame(x1,x2,x3)
Unique_df1<-
unique(c(as.character(df1$x1),as.character(df1$x2),as.character(df1$x3)))
Unique_df1
輸出
如果您將上面給出的所有程式碼段作為單個程式執行,它將生成以下輸出 -
[1] "Hot" "Normal" "Cold"
要在上面建立的資料框上將 df1 中的字串值轉換為唯一數值,請將以下程式碼新增到上面的程式碼段中 -
x1<-sample(c("Hot","Normal","Cold"),20,replace=TRUE)
x2<-sample(c("Hot","Normal","Cold"),20,replace=TRUE)
x3<-sample(c("Hot","Normal","Cold"),20,replace=TRUE)
df1<-data.frame(x1,x2,x3)
Unique_df1<-
unique(c(as.character(df1$x1),as.character(df1$x2),as.character(df1$x3)))
df1<-
data.frame(x1=as.numeric(factor(df1$x1,levels=Unique_df1)),x2=as.numeric(factor
(df1$x2,levels=Unique_df1)),x3=as.numeric(factor(df1$x3,levels=Unique_df1)))
df1
輸出
如果您將上面給出的所有程式碼段作為單個程式執行,它將生成以下輸出 -
x1 x2 x3 1 1 2 1 2 1 1 2 3 1 2 1 4 1 3 2 5 1 3 1 6 1 1 3 7 1 3 3 8 2 3 3 9 1 2 3 10 1 1 1 11 2 2 1 12 2 2 2 13 1 1 3 14 2 3 3 15 1 1 1 16 3 1 2 17 1 1 1 18 1 1 3 19 1 3 3 20 3 1 1
示例 2
以下程式碼段建立一個示例資料框 -
y1<-sample(c("Summer","Rainy","Winter","Spring"),20,replace=TRUE)
y2<-sample(c("Summer","Rainy","Winter","Spring"),20,replace=TRUE)
y3<-sample(c("Summer","Rainy","Winter","Spring"),20,replace=TRUE)
df2<-data.frame(y1,y2,y3)
df2
建立了以下資料框
y1 y2 y3 1 Rainy Winter Rainy 2 Summer Rainy Summer 3 Summer Spring Summer 4 Summer Spring Winter 5 Winter Winter Rainy 6 Summer Rainy Winter 7 Winter Winter Rainy 8 Winter Summer Spring 9 Spring Summer Winter 10 Summer Summer Spring 11 Rainy Rainy Spring 12 Rainy Winter Summer 13 Summer Spring Spring 14 Summer Summer Winter 15 Spring Spring Winter 16 Spring Spring Spring 17 Winter Spring Spring 18 Winter Rainy Summer 19 Winter Spring Winter 20 Winter Summer Summer
要在上面建立的資料框上提取資料框 df2 中的唯一值,請將以下程式碼新增到上面的程式碼段中 -
y1<-sample(c("Summer","Rainy","Winter","Spring"),20,replace=TRUE)
y2<-sample(c("Summer","Rainy","Winter","Spring"),20,replace=TRUE)
y3<-sample(c("Summer","Rainy","Winter","Spring"),20,replace=TRUE)
df2<-data.frame(y1,y2,y3)
Unique_df2<-
unique(c(as.character(df2$y1),as.character(df2$y2),as.character(df2$y3)))
Unique_df2
輸出
如果您將上面給出的所有程式碼段作為單個程式執行,它將生成以下輸出 -
[1] "Rainy" "Summer" "Winter" "Spring"
要在上面建立的資料框上將 df2 中的字串值轉換為唯一數值,請將以下程式碼新增到上面的程式碼段中 -
y1<-sample(c("Summer","Rainy","Winter","Spring"),20,replace=TRUE)
y2<-sample(c("Summer","Rainy","Winter","Spring"),20,replace=TRUE)
y3<-sample(c("Summer","Rainy","Winter","Spring"),20,replace=TRUE)
df2<-data.frame(y1,y2,y3)
Unique_df2<-
unique(c(as.character(df2$y1),as.character(df2$y2),as.character(df2$y3)))
df2<-
data.frame(y1=as.numeric(factor(df2$y1,levels=Unique_df2)),y2=as.numeric(factor
(df2$y2,levels=Unique_df2)),y3=as.numeric(factor(df2$y3,levels=Unique_df2)))
df2
輸出
如果您將上面給出的所有程式碼段作為單個程式執行,它將生成以下輸出 -
y1 y2 y3 1 1 3 1 2 2 1 2 3 2 4 2 4 2 4 3 5 3 3 1 6 2 1 3 7 3 3 1 8 3 2 4 9 4 2 3 10 2 2 4 11 1 1 4 12 1 3 2 13 2 4 4 14 2 2 3 15 4 4 3 16 4 4 4 17 3 4 4 18 3 1 2 19 3 4 3 20 3 2 2
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP