Разделение столбцов во фреймах данных, хранящихся в списке - PullRequest
0 голосов
/ 25 января 2019

Я новичок в обработке фреймов данных, хранящихся в списках, и у меня есть следующая проблема:

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

Один кадр данных (df) выглядит следующим образом:

A  B    C    D

a. 0|0. 1|1  10 

b. 0|1. 0|1  20

c. 1|1. 1|0  30

d. 1|0. 0|0  40

Выход:

    A  B_1  B_2 C_1 C_2   D

    a.  0   0.   1.  1.   10 

    b.  0   1    0.  1    20

    c.  1.  1.   1.  0    30

    d.  1.  0.   0.  0    40

Я могу сделать это для одного фрейма данных:

library(splitstackshape)
cSplit(df, 2:3, sep = "|", type.convert = FALSE)

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

Я написал что-то вроде этого:

list_splitted <- lapply(list_to_split, function(x) {(str_split(x[[i]],  "|"))})

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

Любая помощь высоко ценится, спасибо

1 Ответ

0 голосов
/ 25 января 2019

Я думаю, что нашел решение своей проблемы:

list_ALL2<-list()
for(i in seq_along(list_ALL)){
  list_ALL2[[i]]<-cSplit(list_ALL[[i]], 7:length(list_ALL[[i]]), sep="|", type.convert = F)
}

Это создает пустой список (list_ALL2) и заполняет его элементами, созданными путем применения cSplit к столбцам всех сохраненных фреймов данных.в списке (list_ALL).Количество столбцов, подлежащих сортировке, от 7-го столбца до конца фрейма данных, которое может варьироваться.Столбцы содержат |символ, который используется здесь в cSplit в качестве аргумента sep.

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