2013-08-23 57 views
8

Tôi có danh sách các tệp .csv mà tôi đã đọc vào R và được đặt trong khung dữ liệu lớn có tên là data bao gồm 6 data.frames. trong filenames. Mã của tôi cho đến nay là:Chuyển đổi tên hàng trong nhiều khung dữ liệu thành cột trong khung dữ liệu

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

Các tên hàng và tên cột trong mỗi data.frame là giống hệt nhau, tôi muốn trích xuất các tên hàng và thay vào đó có chúng như cột đầu tiên trong R. Một ví dụ của một trong các khung dữ liệu của tôi sẽ là như thế này:

  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 
    :   : : : : 
    :   : : : : 

tôi cần để có thể sử dụng mã này vào file khác là tốt, vì vậy tôi không thể đơn giản chỉ cần tạo một cột mới với các giá trị 2012 01, 2012 02, 2012 03...

Trả lời

29

Bạn có một dataframe với các cột có tên là "w, x, y , z ". Chỉ cần làm

data$names <- rownames(data) 

để thêm cột mới.

+0

Cảm ơn, điều này phù hợp với dữ liệu cá nhân của tôi. Vì vậy, nó hoạt động nếu tôi áp dụng nó cho 'dữ liệu [[1]] $ name <-rownames (dữ liệu [[1]])' nhưng 'dữ liệu' là một danh sách của 6 data.frames riêng lẻ, tôi đang tìm cách để áp dụng một cái gì đó tương tự như những gì bạn đã đưa cho tôi, nhưng cho tất cả data.frames của tôi trong 'data'. – userk

+1

Ồ, điều này có hiệu quả nếu tôi áp dụng nó trong vòng lặp for! 'for (k trong 1: length (data)) { dữ liệu [[k]] $ date <- rownames (dữ liệu [[k]])}' Cảm ơn sự giúp đỡ của bạn – userk

Các vấn đề liên quan