[英]Remove part of a String in a column (R)
我有帶有dataf
列的PlayerValue
PlayerName playerValue
1 Michy Batshuayi 40,00 Mill. €
2 Tiemoué Bakayoko 35,00 Mill. €
3 Kurt Zouma 20,00 Mill. €
4 Kenedy 10,00 Mill. €
5 Tammy Abraham 10,00 Mill. €
6 Abdul Rahman Baba 8,00 Mill. €
7 Mario Pasalic 8,00 Mill. €
8 Lewis Baker 5,50 Mill. €
9 Ola Aina 4,00 Mill. €
10 Tomas Kalas 4,00 Mill. €
我想讓它只獲得像這樣的列中的數字(如果可能的話,用小數點替換逗號)
PlayerName playerValue
1 Michy Batshuayi 40,00 # 40.00, if possible
2 Tiemoué Bakayoko 35,00
3 Kurt Zouma 20,00
4 Kenedy 10,00
5 Tammy Abraham 10,00
6 Abdul Rahman Baba 8,00
7 Mario Pasalic 8,00
8 Lewis Baker 5,50
9 Ola Aina 4,00
10 Tomas Kalas 4,00
使用gsub
空間后更換任何東西,同時更換,
對.
, 像這樣:
data$playerValue <- gsub(",", ".", gsub("[[:space:]].*", "", data$playerValue))
它將為您提供以下輸出:
# PlayerName playerValue
#1 Michy Batshuayi 40.00
#2 Tiemoué Bakayoko 35.00
#3 Kurt Zouma 20.00
#4 Kenedy 10.00
#5 Tammy Abraham 10.00
#6 Abdul Rahman Baba 8.00
#7 Mario Pasalic 8.00
#8 Lewis Baker 5.50
#9 Ola Aina 4.00
#10 Tomas Kalas 4.00
這樣,如果要將其轉換為數字,則可以按以下步驟進行操作:
data$playerValue <- as.numeric(data$playerValue)
希望能幫助到你。
這將解決問題
playerValue <- "40,00 Mill. € "
as.numeric(gsub("^(\\d+?)\\,(\\d+?)\\s.*", "\\1.\\2", playerValue, perl = TRUE))
# returns
40
簡短說明 regex
:
^
告訴它是字符串的開頭 \\\\d+\\\\,\\\\d+
表示有兩個數字序列,以逗號分隔。 我們使用括號提取兩個序列 \\\\s.*
表示在第二個序列后出現空白並且在該空格后出現任何東西(什么也沒有) \\\\1
, \\\\2
是我們要提取的分組,為了將它們轉換為numeric
,我們用點將它們分開
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.