R извлечение элементов из списка (приведенного из PDF), который имеет несколько элементов, но говорит, что длина списка составляет всего 1? - PullRequest
1 голос
/ 23 января 2020

Я пытаюсь прочитать PDF в R, грубо заставляя его читать текст, а затем пытаюсь преобразовать этот текст во фрейм данных. Я чувствую, что я рядом, это то, что у меня есть в данный момент. Это небольшое подмножество полного списка:

> testlist

    [[1]]                             
     [1] "A 2% 14,000.00 1,000.00 3.98 46.33 0.00 6.33 40.32 186.02\r"
     [2] "B 300% 1,000.00 17.70 0.00 0.00 0.00 52,987.30 0.00 91,736.00\r"                     

Фактический список содержит 35 элементов, это всего лишь подмножество. У меня проблема в том, что этот список имеет длину только 1, и я понятия не имею, как вывести эти элементы из этого списка. Подмножество списка не работает, есть ли умный способ извлечь каждую строку из этого списка как его собственный уникальный символ? Поэтому я хотел бы иметь возможность создавать переменные для каждой строки следующим образом:

a = "A 2% 14,000.00 1,000.00 3.98 46.33 0.00 6.33 40.32 186.02\r"
b = "B 300% 1,000.00 17.70 0.00 0.00 0.00 52,987.30 0.00 91,736.00\r"    

Оттуда я могу атаковать его, используя gsub или что-то подобное, но я не могу понять, как на самом деле извлечь каждую " строка "из списка, так как он говорит, что весь список на самом деле имеет длину 1. Мне также любопытно, какие цифры слева от того, когда список отображается? [1] и [2]? Они выглядят как числа для строк, но это список, и они не могут быть элементами списка, поскольку он говорит, что список содержит только 1 элемент?

1 Ответ

1 голос
/ 23 января 2020

Мы можем использовать [[ для извлечения элементов как vector. [1], [2] - это просто vector элементы в list из length 1.

v1 <- testlist[[1]]

Или, если list имеет длину больше 1, используйте unlist

v1 <- unlist(testlist)

Не рекомендуется создавать несколько объектов в глобальном окружении, но если это действительно необходимо

list2env(setNames(as.list(v1), c('a', 'b')), .GlobalEnv)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...