Соответствующие строки между столбцами в R - PullRequest
5 голосов
/ 30 октября 2009

У меня есть фрейм данных с 2 символьными столбцами. Я хотел бы найти строки, которые один столбец содержит другой, однако grepl странно. Есть идеи?

> ( df <- data.frame(letter=c('a','b'),food = c('apple','pear','bun','beets')) )
  letter  food
1      a apple
2      b  pear
3      a   bun
4      b beets 

> grepl(df$letter,df$food)

[1]  TRUE  TRUE FALSE FALSE

но я хочу T F F T

Спасибо.

Ответы [ 2 ]

5 голосов
/ 30 октября 2009

Благодаря предложению Кевина использовать apply,

> mapply (grepl, df $ letter, df $ food)

дает желаемый результат.

2 голосов
/ 30 октября 2009

Когда я запускаю ваш код, я получаю предупреждение:

Warning message:
In grepl(df$letter, df$food) :
  argument 'pattern' has length > 1 and only the first element will be used

Это подтверждается ?grepl в pattern:

If a character vector of length 2 or more is supplied, 
the first element is used with a warning.

Итак, grepl находит a как в яблоке, так и в груше. Это не решает вашу проблему (применимо или один из ее вариантов?), Но объясняет результат, который вы получаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...