2013-06-08 3 views
0

Я прочитал в двух матрицах данных, используя read.table, и хочу найти пересечение между заголовком списка M1 и вектором в M2. Однако, если я использую intersect (имена (M1), M2 [2,]), я получаю сообщение об ошибке, потому что M2 [2,] является вектором, а M1 - списком. Я думал, что использование as.list (M2 [2,]) исправит эту проблему, но это не так. Как преобразовать структуру данных вектора M2 [2,] в список, чтобы его пересечение с именами (M1) было определенной операцией?Проблемы с преобразованием векторов в списки

+0

Вы хотите знать, какие имена отображаются в обоих местах, или номера строк этих совпадающих имен или что именно? – gung

+0

имена (M1) возвращают список, соответствующий именам заголовков. Некоторые из этих имен заголовков соответствуют элементам в строке 2 матрицы M2. Поэтому я хочу найти пересечение между элементами в векторе M2 [2,] и именами списков (M1) – user1815498

+2

Не так. 'names (M1)' возвращает вектор символов. Отправьте пример, и мы сможем решить ваши недоразумения. –

ответ

1

(Это слишком долго для комментария.)

следующие работы для меня:

set.seed(3) 

M1 = data.frame(matrix(runif(100), ncol=5)) 
colnames(M1) = letters[1:5] 

M2 = data.frame(matrix(rnorm(100), nrow=5)) 
M2[2,] = sample(letters, 20, replace=T) 
intersect(names(M1),M2[2,]) 

Можете ли вы сказать больше о вашей ситуации, и что не работает? Это может помочь прочитать следующее: how-to-make-a-great-r-reproducible-example.

+0

Я думаю, что это сработает, спасибо. – user1815498

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