如何將 R 資料框字串或類別變數的所有單詞轉換為大寫?


獲得的資料格式通常不是我們所需要的,因此,我們需要根據需要來更改資料。當類別變數的層級是用單詞而不是數字表示時,我們可以將這些層級轉換為小寫或大寫。有時,這樣做只是為了使資訊看起來更友好。我們常常會發現值都為小寫,所以,我們藉助 sapply 函式可以將這些值轉換為大寫。

示例

請考慮以下資料框 −

> x1<-letters[1:20]
> x2<-20:1
> x3<-rep(c("india","china","usa","saudi arabia","jordan"),times=4)
> df<-data.frame(x1,x2,x3)
> df
  x1 x2 x3
 1 a 20 india
 2 b 19 china
 3 c 18 usa
 4 d 17 saudi arabia
 5 e 16 jordan
 6 f 15 india
 7 g 14 china
 8 h 13 usa
 9 i 12 saudi arabia
10 j 11 jordan
11 k 10 india
12 l  9 china
13 m  8 usa
14 n  7 saudi arabia
15 o  6 jordan
16 p  5 india
17 q  4 china
18 r  3 usa
19 s  2 saudi arabia
20 t  1 jordan
> df_new<-as.data.frame(sapply(df, toupper))
> df_new
x1 x2 x3
1 A 20 INDIA
2 B 19 CHINA
3 C 18 USA
4 D 17 SAUDI ARABIA
5 E 16 JORDAN
6 F 15 INDIA
7 G 14 CHINA
8 H 13 USA
9 I 12 SAUDI ARABIA
10 J 11 JORDAN
11 K 10 INDIA
12 L 9 CHINA
13 M 8 USA
14 N 7 SAUDI ARABIA
15 O 6 JORDAN
16 P 5 INDIA
17 Q 4 CHINA
18 R 3 USA
19 S 2 SAUDI ARABIA
20 T 1 JORDAN

讓我們再看一個示例,其中第二個變數的第一個字母是大寫 −

> y1<-letters[26:7]
> y2<-rep(c("Statistics","Biology","Psychology","Marketing","Physics"),each=4)
> y3<-rep(c(2,4,6,8),times=5)
> df_y<-data.frame(y1,y2,y3)
> df_y
y1 y2 y3
1 z Statistics 2
2 y Statistics 4
3 x Statistics 6
4 w Statistics 8
5 v Biology 2
6 u Biology 4
7 t Biology 6
8 s Biology 8
9 r Psychology 2
10 q Psychology 4
11 p Psychology 6
12 o Psychology 8
13 n Marketing 2
14 m Marketing 4
15 l Marketing 6
16 k Marketing 8
17 j Physics 2
18 i Physics 4
19 h Physics 6
20 g Physics 8

> df_y_new<-as.data.frame(sapply(df_y, toupper))
> df_y_new
y1 y2 y3
1 Z STATISTICS 2
2 Y STATISTICS 4
3 X STATISTICS 6
4 W STATISTICS 8
5 V BIOLOGY 2
6 U BIOLOGY 4
7 T BIOLOGY 6
8 S BIOLOGY 8
9 R PSYCHOLOGY 2
10 Q PSYCHOLOGY 4
11 P PSYCHOLOGY 6
12 O PSYCHOLOGY 8
13 N MARKETING 2
14 M MARKETING 4
15 L MARKETING 6
16 K MARKETING 8
17 J PHYSICS 2
18 I PHYSICS 4
19 H PHYSICS 6
20 G PHYSICS 8

更新於: 11-Aug-2020

257 次瀏覽

啟動您的 職業

完成課程即可獲得認證

開始學習
廣告