簡體   English   中英

在R中找一個字符串替換成其他?

[英]Find a string in R and replace it with other?

我有這個數據:

  structure(list(bin = structure(1:6, .Label = c("90", "54", 
 "89", "87", "56", "24"), class = "factor"), 
variable = structure(c(1L, 2L, 3L, 4L, 1L, 1L), .Label = c("ghfg", 
"kl", "MIRO", "SM1"), class = "factor"), 
value = c(81, 0.1, 0.22, 9, 79, NaN)), row.names = c(NA, 
6L), class = "data.frame")

我想找到單詞 the 包含以下內容並在列變量中替換為:

  te=c(IRO,fg)

所以 ghfg 將是 fg 而 MIRO 將是 IRO

這是一個使用stringr的編輯解決方案,“ghfg 將是 fg,MIRO 將是 IRO”,您可以根據需要在“管道符號”之間添加盡可能多的其他替換。

library(stringr)

te=c("IRO|fg")

df$new_variable <- 
   ifelse(stringr::str_detect(df$variable, te),
          stringr::str_extract(df$variable, te),
          as.character(df$variable))



df
#>   bin variable value new_variable
#> 1  90     ghfg 81.00           fg
#> 2  54       kl  0.10           kl
#> 3  89     MIRO  0.22          IRO
#> 4  87      SM1  9.00          SM1
#> 5  56     ghfg 79.00           fg
#> 6  24     ghfg   NaN           fg

您的資料

df <- structure(list(bin = structure(1:6, .Label = c("90", "54", 
                                               "89", "87", "56", "24"), class = "factor"), 
               variable = structure(c(1L, 2L, 3L, 4L, 1L, 1L), .Label = c("ghfg", 
                                                                          "kl", "MIRO", "SM1"), class = "factor"), 
               value = c(81, 0.1, 0.22, 9, 79, NaN)), row.names = c(NA, 
                                                                    6L), class = "data.frame")


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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