我不知道该怎么做,我觉得我可以使用grepl()
,但我不确定如何。
我的数据集中有一个列,其中包含“Abbot”,“Baron”,“William”以及数百个其他名称以及许多空白/缺失值的名称。
我想以这样的方式提取它,其中第一个字母被提取并放入一个只包含字母的新列中,如果它缺少一个值,则填入未知。
答案 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)