2013-11-08 4 views
2

Я новичок в R, и у меня возникли проблемы с использованием stringr в наборе данных. Я пытаюсь подмножать данные переменными со словом ресторан в них против тех, у кого нет. Я постоянно получаю это сообщение об ошибке.Ошибка: Строка должна быть атомным вектором R

str_detect(matrix(expandedDataFrame[1,12:21],1, 
       ncol(expandedDataFrame[,12:21])),"Restaurants") 
Error: String must be an atomic vector 
+0

@ScottChamberlain Нет, это должен быть какой-нибудь атомный вектор. Например: 'str_detect (diag (2)," 1 ")' работает. – agstudy

ответ

6

Вы получаете сообщение об ошибке, потому что str_detect ожидает в atomic типа в качестве первого аргумента. Я предполагаю, что если вы используете as.matrix, а не matrix, ваш код будет работать.

Действительно:

is.atomic(matrix(data.frame(c=1:10,c1=5:1))) 
[1] FALSE 
> is.atomic(as.matrix(data.frame(c=1:10,c1=5:1))) 
[1] TRUE 

Так что ваш код становится:

str_detect(as.matrix(expandedDataFrame[1,12:21],1, 
       ncol(expandedDataFrame[,12:21])),"Restaurants") 

Но так как вы не дают воспроизводимый пример, это только предположение ....

+1

Спасибо! это сработало! Я довольно новый, поэтому еще раз спасибо за вашу помощь. – SJSU2013

Смежные вопросы