2017-01-07 3 views
0

У меня есть несколько data.frames (26) в списке. Dfs имеют одинаковую структуру, но я хотел бы работать/экспортировать только два разных столбца. Я могу экспортировать весь ДФС отдельного ДФСАКак экспортировать один столбец из нескольких data.frames из списка,

for(i in filelist){ 
    list2env(setNames(filelist, paste0("names(filelist[[i]])", 
      seq_along(filelist))), envir = parent.frame())} 

можно удалить столбец из все ДФСА

for(i in seq_along(filelist)){filelist[[i]]$V5 = NULL} 

, но я не могу экспортировать другие столбцы индивидуально. С одной data.frame он просто работает:

token_out_mk_totatyafiak_02.txt = out_mk_totatyafiak_02.txt["V2"] 
type_out_mk_totatyafiak_02.txt = out_mk_totatyafiak_02.txt["V1"] 

Когда я попробовал эти

for(i in seq_along(filelist)){n[[i]] <- filelist[[i]]$V2} 

for(i in seq_along(filelist)){ 
    sapply(filelist, function(x) n <- filelist[[i]]$V2) 
    } 

Самое большее, я добилась, чтобы я мог читать все 26 ДПП второй столбец последней ФР.

V2, выглядит следующим образом:

 V2 

1  az 

2  a 

3 f 
ekete 

4  folt 

(и так далее, эти венгерские рассказы ...)

ответ

1

В зависимости от ваших желаемых результатов, у вас есть несколько вариантов.

Если вы хотите новый список, с вашими кадрами данных, содержащими только один конкретный столбец.

new_filelist <- 
    lapply(filelist, function(df){ 
    df["V2"] 
    }) 

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

Для этого вам нужны ваши фреймы данных в вашем списке. В противном случае вы можете заменить names(filelist) на 1:length(filelist).

lapply(names(filelist), function(df){ 
    df_filename <- paste0(df, ".txt") 
    write.table(filelist[[df]]["V2"], df_filename) 
}) 

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

Опять же, для этого нужны ваши фреймы данных.

lapply(names(filelist), function(df){ 
    assign(df, filelist[[df]]["V2"], envir = .GlobalEnv) 
}) 
+0

спасибо, вот что я искал! – glabadi

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