Чтение в пространстве разделенных массив данных в R для частых предметов - PullRequest
1 голос
/ 05 марта 2019

У меня есть файл .txt, который состоит из чисел, разделенных пробелами. В каждой строке содержится разное количество чисел. Мне нужно провести анализ рыночной корзины данных, однако я не могу правильно загрузить данные (особенно потому, что в каждой «корзине» находится разное количество товаров). Каков наилучший способ хранения данных, чтобы я мог найти частые товары, а затем проверять наличие частых товаров в каждой корзине?

Пример данных:

1 2 4 3 67 43 154
4 5 3 21 2
2 4 5 32 145
2 6 7 8 23 456 32 21 34 54

Ответы [ 2 ]

0 голосов
/ 05 марта 2019
my_text = '1 2 4 3 67 43 154
                    4 5 3 21 2
                    2 4 5 32 145
                    2 6 7 8 23 456 32 21 34 54'



my_text2 <- strsplit(my_text, split = '\n') 

my_text2 <- lapply(my_text2, trimws)



my_text2           %>%  
do.call('rbind',.) %>%
t                  %>%  
as.data.frame()    %>% 
separate(V1, sep  = ' ',into = paste('col_', 1:10))

col_ 1 col_ 2 col_ 3 col_ 4 col_ 5 col_ 6 col_ 7 col_ 8 col_ 9 col_ 10
1      1      2      4      3     67     43    154   <NA>   <NA>    <NA>
2      4      5      3     21      2   <NA>   <NA>   <NA>   <NA>    <NA>
3      2      4      5     32    145   <NA>   <NA>   <NA>   <NA>    <NA>
4      2      6      7      8     23    456     32     21     34      54
0 голосов
/ 05 марта 2019

Вы должны иметь возможность вводить с помощью readLines, а затем использовать lapply для разделения на числа. Предположим, что находится в файле с именем txt.txt:

   dat <- lapply( readLines("txt.txt"), function(Line) scan(text=Line) )

Причина, по которой я не предложил read.table с fill = TRUE (что дало бы вам что-то похожее на другой ответ, который появился, заключается в том, что структура столбца не была нужна. Если только не была информация, закодированная в позиции этих Интересно, может ли это быть дополнительная информация, закодированная в отдельных строках, таких как регионы или хранилища, или какая-либо другая сущность в качестве источника определенных пронумерованных элементов. Это было бы причиной сохранения ее в структуре списка с неравномерным количеством . Вы можете получить глобальные перечисления просто с помощью таблицы:

table( unlist(dat) )

  1   2   3   4   5   6   7   8  21  23  32  34  43  54  67 145 154 456 
  1   4   2   3   2   1   1   1   2   1   2   1   1   1   1   1   1   1 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...