如何在R資料框中替換與特定值組合的$符號?


有時我們會得到非常雜亂的資料,這就是資料分析是一項困難任務的原因。大多數資料科學家都尋找乾淨的資料,但由於資料倉庫通常只關注資料可用性而不是資料質量,這幾乎是不可能的。一個令人頭疼的情況是在隨機位置放置不必要的值,$符號也是這種值型別之一。我們可以使用lapply函式從R資料框中刪除它。

示例

考慮下面的資料框

線上演示

> x<-sample(c("A","$B","C"),20,replace=TRUE)
> y<-sample(c("I","II","$II"),20,replace=TRUE)
> df1<-data.frame(x,y)
> df1

輸出

x y
1 C $II
2 C II
3 A I
4 $B $II
5 $B $II
6 A I
7 A $II
8 C I
9 $B II
10 $B II
11 C $II
12 A II
13 $B II
14 C I
15 C $II
16 C I
17 C II
18 $B I
19 $B II
20 C $II

從df1中的所有位置刪除$符號

示例

> df1<-lapply(df1,gsub,pattern='\$',replacement='')
> df1
$x

輸出

[1] "C" "C" "A" "B" "B" "A" "A" "C" "B" "B" "C" "A" "B" "C" "C" "C" "C" "B" "B"
[20] "C"

示例

$y

輸出

[1] "II" "II" "I" "II" "II" "I" "II" "I" "II" "II" "II" "II" "II" "I" "II"
[16] "I" "II" "I" "II" "II"

讓我們看看另一個例子

示例

線上演示

> Price<-sample(c("1$","2$","3$","4$"),20,replace=TRUE)
> Group<-sample(c("$First","$Second","Third"),20,replace=TRUE)
> df2<-data.frame(Price,Group)
> df2

輸出

Price Group
1 3$ $Second
2 2$ Third
3 1$ Third
4 2$ $Second
5 2$ $First
6 4$ $First
7 2$ $First
8 3$ $First
9 2$ Third
10 4$ Third
11 3$ $First
12 3$ Third
13 3$ $Second
14 2$ $First
15 4$ Third
16 3$ $First
17 4$ Third
18 2$ $First
19 2$ $Second
20 3$ Third

從df2中的所有位置刪除$符號

示例

> df2<-lapply(df2,gsub,pattern='\$',replacement='')
> df2

輸出

$Price
[1] "3" "2" "1" "2" "2" "4" "2" "3" "2" "4" "3" "3" "3" "2" "4" "3" "4" "2" "2"
[20] "3"

$Group
[1] "Second" "Third" "Third" "Second" "First" "First" "First" "First"
[9] "Third" "Third" "First" "Third" "Second" "First" "Third" "First"
[17] "Third" "First" "Second" "Third"

更新於:2020年11月19日

79次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.