Я относительный новичок R. Я искал последние две рабочие дни, пытаясь понять это и потерпел неудачу. У меня есть список факторов, генерируемых функцией. У меня 9 элементов в списке разной длины.печать списка данных кадров
>summary(list_dataframes)
Length Class Mode
[1,] 1757 factor numeric
[2,] 1776 factor numeric
[3,] 1737 factor numeric
[4,] 1766 factor numeric
[5,] 1783 factor numeric
[6,] 1751 factor numeric
[7,] 1744 factor numeric
[8,] 1749 factor numeric
[9,] 1757 factor numeric
Часть выборки данных, как это выходит:
list_dataframes
[[1]]
[1] 1776234_at 1779003_at 1776344_at 1777664_at 1772541_at 1774525_at
[[2]]
[1] 1771703_at 1776299_at 1772744_at 1780116_at 1775451_at 1778821_at
[7] 1774342_at
[[3]]
[1] 1780116_at 1776262_at 1775451_at 1780200_at 1775704_at
Я не знаю, почему он говорит, что режим является "числовой". Отдельные записи представляют собой сочетание чисел и букв типа «S35_at».
Я хотел бы сделать это в таблице из девяти столбцов и 1783 строк без создания повторяющихся значений. (Поэтому я попытался использовать do.call, и это не сработало. В итоге у меня был беспорядок, полный дубликатов). Более короткие могут иметь NA в пустых пространствах или быть пустыми.
Мне нужно иметь возможность в конечном итоге с чем-то, что я могу положить в лист с расширением.
Должен быть способ сделать это. Спасибо!
Я предполагаю, что я должен добавить, что он изначально вышел как кадры данных, когда у меня было четыре столбца данных, но мне нужен только один столбец данных, и когда я подмножал функцию, которая создает этот список, чтобы создать только один столбец I на самом деле это, по-видимому, больше не является фреймворком данных.
dput(head(list_dataframes))
list(structure(c(3605L, 5065L, 3663L, 4349L, 1655L, 2700L, 5692L, plus many more
.Label = c("1769308_at",
"1769311_at", "1769312_at", "1769313_at", "1769314_at", "1769317_at", plus many more
this pattern is repeated nine more times
То, что я пытаюсь сделать, это создать таблицу, которая будет выглядеть следующим образом:
a= xyz,tuv,efg,hij,def
b= xyz,tuv,efg
c= tuv,efg,hij,def
То, что я хочу сделать это таблица, которая является
a b c
xyz xyz tuv
tuv tuv efg
efg efg hij
hij NA NA
NA NA NA
NA could be blank as well.
После большого чтения в разделе руководства по спискам я определил, что я создал скрытый список списков. У него было девять предметов с данными, которые я хотел похоронить двумя слоями вниз, чтобы увидеть, что я должен был использовать [[1]]. Кроме того, из-за чего-то в R, что приводит к тому, что один кадр данных столбца становится фактором вместо того, чтобы оставаться в кадре данных, он был еще более сложным. Чтобы исправить это (вроде), я добавил один шаг в моем уравнении, чтобы изменить этот фактор на фрейм данных.
После этого, когда я использовал lapply для генерации моего результата, по крайней мере проблема с фактором была решена. Затем я мог бы выполнить следующие шаги, чтобы вытащить фреймы данных.
first <- list_dataframes[[1]]
second <- list_dataframes[[2]]
third <- list_dataframes[[3]]
fourth <- list_dataframes[[4]]
fifth <- list_dataframes[[5]]
sixth <- list_dataframes[[6]]
seventh <- list_dataframes[[7]]
eighth <- list_dataframes[[8]]
nineth <- list_dataframes[[9]]
all_results <- cbindX(first,second,third,fourth,fifth,sixth,seventh, eighth,nineth)
Я мог бы написать файл csv с помощью write.csv и получить правильный результат, который я получил после. Я думаю, у меня есть мой ответ. Я имею в виду, что сейчас это работает.
Однако я все еще думаю, что у меня что-то не хватает, делая эту работу оптимально, хотя теперь она дает мне правильный результат, который я получил после.
Возможно опубликовать воспроизводимый пример, показывающий подмножество набора данных, возможно, с 10-20 строками. –
В данных данных существует очень ограниченная степень перекрытия. Ваше первоначальное описание показало высокую степень перекрытия. Уточнить? –
Это список вещей, над которыми я работаю, которые имеют определенную ценность, которая делает их значительными. Подмножества взяты из того же большого набора из 4500, и между ними существует некоторое совпадение, но не много. Проблема с дубликатами в do.call заключается в том, что у меня было бы 50 или 60 дубликатов в последних наборах столбцов. Я мог бы вручную удалить их из электронной таблицы, но это может привести к тому, что вы научитесь программировать вещи. –