извлечь значения, которые совпадают в обоих столбцах - PullRequest
1 голос
/ 02 марта 2012

У меня есть data.frame из двух столбцов разного размера:

type1    type2
user1  user1
user2  user4
user3  user6
user4  

как получить совпадения?что результат будет

user1 
user4

Ответы [ 2 ]

1 голос
/ 02 марта 2012

См. ?match или аналогичный ?"%in%":

df$type1[df$type1 %in% df$type2]
0 голосов
/ 03 марта 2012

Прежде всего, все столбцы в data.frame должны иметь одинаковую длину (см. http://cran.r -project.org / doc / manual / R-intro.html # Data-frames. ) поэтому я буду считать, что последняя запись в вашем примере - просто пустая строка "".

То, что вы ищете, это "пересечение" ваших двух столбцов, то есть элементов, которые можно найти в обоих столбцах. Для этого вы можете использовать функцию intersect:

df <- data.frame(type1 = c("user1", "user2", "user3", "user4"),
                 type2 = c("user1", "user4", "user6", ""))
df
#   type1 type2
# 1 user1 user1
# 2 user2 user4
# 3 user3 user6
# 4 user4      

intersect(df$type1, df$type2)
# [1] "user1" "user4"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...