2013-08-23 2 views
8

У меня есть список .csv файлов, которые я прочитал в R, и помещены в большой фрейм данных с именем data, который состоит из 6 data.frames, которые являются 6 файлами в filenames. Мой код до сих пор:Преобразование имен строк в несколько кадров данных в столбец в кадре данных

filenames <- list.files(paste(mainDirInput,sep=""), pattern="Out.*csv", full.names=TRUE) 
data = lapply(filenames, function(f) { 
wb = read.csv(f, header=TRUE) 
}) 

Названия строк и столбцов в каждой data.frame точно так же, я хотел бы, чтобы извлечь имена строк и вместо того, чтобы иметь их в качестве первого столбца в R. Пример одного из моих кадров данных будет выглядеть так:

  w x y z 
2012 01  12 43 87 09 
2012 02  14 53 75 76 
2012 03  76 34 76 28 
2012 04  41 36 85 16 
    :   : : : : 
    :   : : : : 

Мне нужно, чтобы иметь возможность использовать этот код на другие файлы, так что я просто не могу просто создать новый столбец со значениями 2012 01, 2012 02, 2012 03...

ответ

29

У вас есть dataframe с колонками с именем «w, x, y , z ". Просто сделайте

data$names <- rownames(data) 

, чтобы добавить новый столбец.

+0

Спасибо, это работает для моих отдельных data.frames, поэтому он работает, если я применяю его к 'data [[1]] $ names <-rownames (data [[1]])' but 'data' - список из 6 отдельных data.frames, я ищу, чтобы найти способ применить что-то похожее на то, что вы мне дали, но на все мои data.frames в 'data'. – userk

+1

О, это работает, если я применяю его в цикле for! 'для (k в 1: длина (данные)) { данные [[k]] $ date <- rownames (данные [[k]])}' Спасибо за вашу помощь – userk

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