2014-12-08 3 views
0

Добрый день,Импорт нескольких TextFiles в R (с закруткой)

У меня есть 33 * .tsv (вкладками разделителями) в каталоге. Все файлы имеют одинаковые имена row.names, но разные столбцы. Я хочу, чтобы одновременно импортировать все файлы, а конечный продукт должен быть списком из 33 фреймов данных (или матриц) с именами в соответствии с их именами файлов.

  1. data <-lapply(dir(), read.table) не работает должным образом. Результирующие записи списка являются факторами из-за row.names.
  2. data <- lapply(dir(), read.table, row.names=1, header = TRUE, sep = "\t", dec = ".") не работает, из-за двойной строки.имя ошибок.

То же самое верно при применении представленного решения here.

Другим вариантом было бы импорт большого отдельного файла, а затем разделить на 33 объектов по именам заголовков (которые отделены друг от друга _1, _2, _3, и так далее (в том числе символьных строк после подчеркиванием).

Любая помощь оценена как обычно.

+0

Пожалуйста, объясните, что вы имеете в виду под «не работает» – Andrie

+0

ой, я получаю список наверняка, но содержание списка - все факторы из-за присутствия e из строк. имена в исходных файлах. – nouse

+0

Используйте 'strAsAsFactors = FALSE' в' read.table() '. – Andrie

ответ

0

не очень элегантно, но как насчет

data <- lapply(dir(), read.table, header = TRUE, sep = "\t", dec = ".") 
data <- lapply(data, function(x) rownames(x) <- x[,1]) 
+0

после второй строки будет выдаваться ошибка double row.names. трассировка говорит мне: 3 'rownames <- (' * tmp * ', value = c (NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA , NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ... 2 FUN (X [[26L]], ...) 1 lapply (data, function (x) rownames (x) <- x [, 1]) ' – nouse

+0

Я не знаю, откуда берутся NA. Во входных файлах нет NA. – nouse

+0

что делает ул (данные [[1]]) дают –

Смежные вопросы