我不知道如何做到這一點,我有一種感覺,我可以使用grepl()
與此,但我不知道如何。在特定類型的模式匹配使用grepl()
我在我的數據集中有一列,裏面有「Abbot」,「Baron」,「William」和其他數百個名字以及許多空格/缺失值。
我想提取它的方式,第一個字母被提取並放在一個只包含字母的新列,如果它缺少一個值,然後填寫未知。
我不知道如何做到這一點,我有一種感覺,我可以使用grepl()
與此,但我不知道如何。在特定類型的模式匹配使用grepl()
我在我的數據集中有一列,裏面有「Abbot」,「Baron」,「William」和其他數百個名字以及許多空格/缺失值。
我想提取它的方式,第一個字母被提取並放在一個只包含字母的新列,如果它缺少一個值,然後填寫未知。
下面我用快速的sapply
聲明和strsplit
來抓住第一個字母。有可能有更好的方法來做到這一點,但這裏有一個解決方案。 :)
test <- c('Abbot', 'Baron', 'William')
firstLetter <- sapply(test, function(x){unlist(strsplit(x,''))[1]})
你怎麼對待
,如果是說那麼它缺少值未知
填?
使用substr
的以下代碼應該非常快速且具有大量的行。如果test$name
中的相應值爲NA
,它總是返回第一個字母並返回NA
。
test <- data.frame(name = c('Abbot', 'Baron', 'William', NA))
test$first.letter <- substr(test$name, 1, 1)
如果你想將所有NA
轉換成test$first.letter
到'unknown'
你以後可以做到這一點:
test$first.letter <- ifelse(is.na(test$first.letter), "unknown", test$first.letter)