Я не думаю, что data.frame () может обрабатывать векторы как отдельные элементы, поэтому я использовал data_frame()
из пакета tibble
:
df <- tibble::data_frame(var1 = list(c("apple", "www"), c("dog", "cat", "kkk")), var2 = list(c("apple", "zzz"), c("cat", "kkk")))
применить функцию по строке, где функция принимает пересечение первого и второго элементов списка:
apply(df, 1, function(x) intersect(x[[1]], x[[2]]))
[[1]]
[1] "apple"
[[2]]
[1] "cat" "kkk"