在特定类型的模式匹配中使用grepl()

时间:2015-12-10 19:30:47

标签: r

我不知道该怎么做,我觉得我可以使用grepl(),但我不确定如何。

我的数据集中有一个列,其中包含“Abbot”,“Baron”,“William”以及数百个其他名称以及许多空白/缺失值的名称。

我想以这样的方式提取它,其中第一个字母被提取并放入一个只包含字母的新列中,如果它缺少一个值,则填入未知。

2 个答案:

答案 0 :(得分:0)

下面我使用快速sapply语句和strsplit来获取第一个字母。可能有更好的方法来做到这一点,但这是一个解决方案。 :)

test <- c('Abbot', 'Baron', 'William')
firstLetter <- sapply(test, function(x){unlist(strsplit(x,''))[1]})

答案 1 :(得分:0)

你的意思是什么

  

如果它缺少一个值,则用未知的

填写

使用substr的以下代码应该非常快,并且行数很多。如果NA中的相应值为test$name,它始终会返回第一个字母并返回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)