Как удалить часть столбца символьного значения фрейма данных в R - PullRequest
0 голосов
/ 31 мая 2018
  [1] NA                         NA                         
  [3] NA                         NA                         
  [5] "kilo130.9"            "kilo5075.69"       
  [7] "kilo465"              "kilo34.8"            
  [9] "kilo607.195"          "kilo1362.7"    

Выше столбца кадра данных, который я скопировал, вставил из R Я запустил код ниже, чтобы удалить слово килограмм из столбца, но он не работает.Я не получаю ошибку, но это не удаляет слово килограмм.Я использовал код ниже

stopwords = readLines('stopwords.txt') #I put the word kilo in this txt file
x  = df$Dist
x  =  removeWords(x,stopwords)
df$newdist<-x

Что может быть резонанс?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Вот базовое решение R с использованием gsub:

# Sample data
w <- c(
    NA, NA,
    NA, NA,
    "kilo130.9", "kilo5075.69",
    "kilo465", "kilo34.8",
    "kilo607.195", "kilo1362.7")

# Strings that should be deleted
stopwords <- c("kilo", "something");

sapply(w, function(x)
    x <- gsub(sprintf("(%s)", paste(stopwords, collapse = "|")), "", x));
#       <NA>        <NA>        <NA>        <NA>   kilo130.9 kilo5075.69
#         NA          NA          NA          NA     "130.9"   "5075.69"
#    kilo465    kilo34.8 kilo607.195  kilo1362.7
#      "465"      "34.8"   "607.195"    "1362.7"
0 голосов
/ 31 мая 2018

removeWords() удаляет только слова, которые точно соответствуют "kilo" (без других символов):

x <- c("kilo", "kilo2", "pound")
tm::removeWords(x, "kilo")
#> [1] ""      "kilo2" "pound"

Вот еще один вариант:

library("stringr")
x <- c(NA, NA, NA, NA, "kilo130.9", "kilo5075.69", "kilo465", "kilo34.8", "kilo607.195", "kilo1362.7")
str_replace(x, "kilo", "")
#>  [1] NA        NA        NA        NA        "130.9"   "5075.69" "465"    
#>  [8] "34.8"    "607.195" "1362.7"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...