R цикл через разные списки - PullRequest
0 голосов
/ 08 июня 2019

Я работаю в R и у меня есть список A и список B, в котором список A <<< B. Оба списка имеют значение записи одного столбца (chr.).Я хочу добавить новый столбец в список B на основе записи списка AIe в списке B, посмотреть на столбец xy для всех общих значений со списком A в столбце zk, добавить новый столбец в список B со значениями списка A столбцастр. </p>

for(i in range(1:length(B[[y]]))){for(j in range(1:length(A[[x]]))){if(A[[x]] == B[[y]]){mutate(B, newvalue = A[[z))}}}

1 Ответ

0 голосов
/ 23 июня 2019

Как указано @ G5W, вы можете использовать функцию merge.Сначала вы должны преобразовать свои списки во фреймы данных, а затем merge.После этого вы можете преобразовать полученный фрейм данных обратно в список.

В принципе, нет необходимости реализовывать алгоритм самостоятельно, используя циклы for.Это уже сделано в базе R. Пожалуйста, смотрите код ниже:

l1 <- list(x = 3:7, y = letters[3:7])
l2 <- list(x = 1:10, z = letters[1:10])
df1 <- as.data.frame(l1, stringsAsFactors = FALSE)
df2 <- as.data.frame(l2, stringsAsFactors = FALSE)
df_m <- merge(df1, df2)
l_m <- as.list(df_m)
l_m

Вывод:

$`x`
[1] 3 4 5 6 7

$y
[1] "c" "d" "e" "f" "g"

$z
[1] "c" "d" "e" "f" "g"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...