Доступ к данным из векторов - PullRequest
0 голосов
/ 30 октября 2018

Мне нужна помощь для загрузки данных из векторов

С одной стороны, у меня есть фрейм данных с индивидуальной идентификацией продуктов (около 13 000 человек). С другой стороны, у меня есть несколько векторов (50) со всеми индивидуальными идентификаторами продуктов, принадлежащих одной и той же партии продукции.

Я создал фрейм данных с именами всех векторов.

Теперь я должен получить доступ к данным каждого вектора отдельно, чтобы сравнить с индивидуальным идентификатором, хранящимся во фрейме данных.

Окончательный результат - добавление нового столбца во фрейме данных с именем пакета.

        ID_df=data.frame(ID=c(1:10),LOT=("W/O Lot"),stringsAsFactors = F)

        Lot_a=c(1:3)
        Lot_b=c(4:6)
        Lot_c=c(7:9)

        index=as.data.frame(ls(pattern = 'Lot_'))

        ID_df[which(ID_df$ID %in% Lot_a),2]='Lot_a'
        ID_df[which(ID_df$ID %in% Lot_b),2]='Lot_b'
        ID_df[which(ID_df$ID %in% Lot_c),2]='Lot_c'

        ID_df


           ID     LOT
        1   1   Lot_a
        2   2   Lot_a
        3   3   Lot_a
        4   4   Lot_b
        5   5   Lot_b
        6   6   Lot_b
        7   7   Lot_c
        8   8   Lot_c
        9   9   Lot_c
        10 10 W/O Lot

Я попытался с помощью цикла FOR, но могу только прочитать имя вектора в индексном фрейме данных вместо данных, содержащихся в нем.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

На практике гораздо лучше хранить ваши данные в списке, если они связаны, но если они уже находятся в глобальной среде, вы можете использовать ls и mget, чтобы получить список данных, соответствующих вашему ls вектор:

mget(ls(pattern = "vector_"))

Результат:

$vector_a
[1] 1 2 3

$vector_b
[1] 4 5 6

$vector_c
[1] 7 8 9
0 голосов
/ 30 октября 2018

Сделайте это:

eval(parse(text = index[1]))

Если я правильно понял ваш вопрос, вы хотите, чтобы R вычислял строку, как если бы это был код R. Вы бы использовали eval для этого.

Приведенное выше даст вам 1,2,3 на выходе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...