Сравнение списка столбцов с 1 столбцом и одного столбца с 1 столбцом - PullRequest
0 голосов
/ 29 апреля 2020

Я очень новичок в программировании, когда дело доходит до R, и я думаю, что думаю о том, что я пытаюсь сделать. У меня есть список из 9 столбцов, каждый из которых состоит из 1 столбца, который содержит ~ 50 элементов в виде символов. Я хотел бы сравнить каждый столбец в списке с другим столбцом из 1 столбца. Я уже знаю, что ни один из тибблов не идентичен, но некоторые значения являются. Таким образом, я хотел бы, чтобы каждое сравнение возвращало список значений ИСТИНА или ЛОЖЬ в зависимости от того, найдено или нет каждое значение из списка элементов в отдельном элементе. Сравнение 2-х таблиц по отдельности легко, так как я использовал% в%, но сложная часть состоит в том, чтобы перебрать список тибблов, чтобы сделать сравнения, не выполняя сравнения 1 по одному, используя команду% in%.

Вот что я пробовал до сих пор:

mapply(function(x,y){any(x %in% y)}, tibble_list, single_tibble)

Это только сравнивает тиблы и возвращает FALSE для всех, потому что они не равны.

for (val in tibble_list) {val$Column.Name %in% single_tibble$Column.Name}

Это печатает все отлично, но когда я пытаюсь сохранить значения, он сохраняет только последнюю итерацию.

Я подозреваю, что можно использовать функцию карты, но, как я уже сказал, я новичок в R, и это сильно отличается от Python .

Спасибо!

1 Ответ

0 голосов
/ 29 апреля 2020

Если это один столбец в tibble_list, который нужно сравнить со столбцом 'single_tibble', мы можем использовать lapply или map (из purrr)

 out <- lapply(tibble_list, function(dat) dat$Column.Name %in% single_tibble$Column.Name)

В for l oop нам нужно присвоить list вывод каждой итерации

out1 <- vector('list', length(tibble_list))
for (i in seq_along(tibble_list)) {
        out1[[i]] <- tibble_list[[i]]$Column.Name %in% single_tibble$Column.Name
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...