Thank you Dennis for the solution. It is a step ahead..However I need to
read all 200 files as  dataframes one-by-one. Can we automate this process.
I used the following step to read all file at once however the data_list
ended as list. 

 

filelist = list.files(pattern = "K*cd.txt") # the file names are K1cd.txt
.................to K200cd.txt

data_list <-lapply(filelist, read.table, header=T, comment=";", fill=T)
names(filelist) <- 1:length(filelist)

    library("plyr")

    ldply(data_list, rbind)

 

I tried to use your approach to list, is not successful to have the var  .id
(otherwise it is binding the component dataframes !), probably this is
applicable to component data frames not list with many data frames. 

Do you any suggestion on using fuctions that can read the files (as I did
above) and save as new dataframe (for example DF1.....DF2) not a list of 200
data frames? If we can do that then we will able to use this approach.

 

Thank you so much,

Umesh R 



 

From: Dennis Murphy [mailto:djmu...@gmail.com] 
Sent: Monday, April 04, 2011 3:25 PM
To: Umesh Rosyara
Cc: r-help@r-project.org; rosyar...@gmail.com
Subject: Re: [R] merging data list in to single data frame

 

Hi:

Here's an alternative using ldply() from the plyr package. The idea is to
read the data frames into a list, name them accordingly and then call
ldply().

# Read in the test data frames (you want to use list.files() instead to
input the data per Uwe's guidelines)
df1 <- read.table(textConnection("
+ var1  var2  var3    var4
+ 1           6         0.3         8
+ 3          4         0.4         9
+ 2          3         0.4         6
+ 1           0.4    0.9          3"), header = TRUE)
> df2 <- read.table(textConnection("
+ var1 var2 var3 var4
+ 1 16 0.6 7
+ 3 14 0.4 6
+ 2 13 0.4 5
+ 1 0.6 0.9 2"), header = TRUE)
closeAllConnections()
# generate the list
dl <- list(df1, df2)

# Name the list components by number and then call ldply():
names(dl) <- 1:2      # more generally, names(dl) <- 1:length(dl)
library("plyr")
ldply(dl, rbind)
  .id var1 var2 var3 var4
1   1    1  6.0  0.3    8
2   1    3  4.0  0.4    9
3   1    2  3.0  0.4    6
4   1    1  0.4  0.9    3
5   2    1 16.0  0.6    7
6   2    3 14.0  0.4    6
7   2    2 13.0  0.4    5
8   2    1  0.6  0.9    2

You can always change .id to fileno afterwards.

HTH,
Dennis

On Mon, Apr 4, 2011 at 7:41 AM, Umesh Rosyara <rosy...@msu.edu> wrote:

Dear R community members



I did find a good way to merge my 200 text data files in to a single data
file with one column added will show indicator for that file.



filelist = list.files(pattern = "K*cd.txt") # the file names are K1cd.txt
.................to K200cd.txt

data_list <-lapply(filelist, read.table, header=T, comment=";", fill=T)



This will create list, but this is not what I want.



I want a single dataframe (all separate dataframes have same variable
headings) with additional row for example



; just for example, two small datasets are created by my component datasets
are huge, need automation

;read from file K1cd.txt

var1  var2  var3    var4

1           6         0.3         8

3          4         0.4         9

2          3         0.4         6

1           0.4    0.9          3



;read from file K2cd.txt

var1  var2  var3    var4

1           16         0.6        7

3          14         0.4         6

2         1 3         0.4         5

1          0.6    0.9          2



the output dataframe should look like



Fileno  var1  var2  var3    var4

1              1           6         0.3        8

1              3          4         0.4         9

1              2          3         0.4         6

1              1           0.4      0.9        3

2              1           16       0.6        7

2              3          14         0.4        6

2              2         1 3         0.4        5

2              1          0.6         0.9       2



Please note that new file no column is added



Thank you for the help.



Umesh R




       [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

 


        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to