簡體   English   中英

在列(R)中刪除一部分字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM