2015-03-26 2 views
0

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

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

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

Каков наилучший способ объединить таблицы, которые у меня есть, в один массив и сохранить его?

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

.csv файлы с заголовками таблиц «X» «ген» «baseMean» «log2FoldChange» " lfcSE " "стат"
"p-значение" "padj" "TuLob" "Туда"

один вид .txt файлов с заголовками "hgnc_symbol" "ensembl_gene_id" "ensembl_transcript_id" "ensembl_peptide_id"
"группы"" chromosome_name "" start_position "" end_position "
"transcript_start" "transcript_end" "Описание" "go_id"
"name_1006" "transcript_source" "статус"

и второго рода .txt файлов с заголовками "hgnc_symbol" "ensembl_gene_id" "ensembl_transcript_id" "ensembl_peptide_id"
"группа" "chromosome_name" "начальная_позиция" "end_position"
"transcript_start" "transcript_end" "описание" "name_1006"
"transcript_source" "статус"

Опять же, я не пытаюсь объединить эти таблицы, просто сохраните их в стеке или трехмерном массиве как один файл, до b e открыт и проиндексирован позже

+0

возможно дубликат [Написать другой кадр данных в одном файле .csv с R] (HTTP: // StackOverflow.com/questions/17677557/write-different-data-frame-in-one-csv-file-with-r) – rmuc8

+0

Я попробовал метод здесь, не смог загрузить .csv обратно в R: «дублировать имена строк не разрешено " – user2241427

+0

Ну, когда вы записываете данные, не включайте имена строк:' row.names = FALSE' – MrFlick

ответ

0

Я думаю, что вы хотите использовать функцию save, чтобы сохранить данные во внутреннем формате R.

df1 <- data.frame(x=rnorm(100)) 
df2 <- data.frame(y=rnorm(10), z=rnorm(10)) 

дает нам два кадра данных с различными столбцов, строк и т.д.

save(df1, df2, file="agg.RData") 

сохраняет его agg.RData

Вы позже можете сделать

load("agg.RData") 
head(df1) 
... 

Смотрите также attach , что делает то, что делает load, только лениво, поэтому он будет загружайте объекты только после того, как вы попытаетесь получить к ним доступ.

Наконец, вы можете получить некоторую меру изоляции пути определения и условия для load:

agg <- new.env() 
load("agg.RData", agg) 
head(agg$df1) 
... 
Смежные вопросы