[R] Read the data from a text file and reshape the data

arun smartpink111 at yahoo.com
Fri Apr 12 05:00:26 CEST 2013


Hi,
May be this helps:
 lines1<- readLines("WAT_DEP.DAT.part")
indx<- which(grepl("[*]",lines1))
indx2<-indx[seq(from=indx[2],length(indx),by=2)]+1
lines2<-str_trim(lines1[indx2],side="left")
dat1<-read.table(text=lines2,sep="",header=FALSE)

library(stringr)
lst1<- lapply(split(indx,((seq_along(indx)-1)%/%2)+1), function(x) {x1<-seq(max(x)+2,max(x)+2+49,by=1); x2<- str_trim(lines1[x1][!is.na(lines1[x1])],side="left"); x3<-as.vector(as.matrix(read.table(text=x2[x2!=""],header=FALSE,sep=""))); x4<- if(length(x3)< 500) c(x3,rep(NA,500-length(x3))) else x3;x4 })
dat2<- as.data.frame(do.call(cbind,lst1))
colnames(dat2)<-paste("t",colnames(dat2),"_",dat1[,2],sep="")
 dim(dat2)
#[1] 500 622
dat2[1:3,1:3]
#  t1_0.00208 t2_0.00417 t3_0.00625
#1      3.224      4.124      4.502
#2      3.205      4.118      4.500
#3      3.189      4.114      4.498

A.K.

----- Original Message -----
From: Janesh Devkota <janesh.devkota at gmail.com>
To: r-help at r-project.org
Cc: 
Sent: Thursday, April 11, 2013 5:55 PM
Subject: [R] Read the data from a text file and reshape the data

I have a data set for different time intervals. The data has three comment
lines before data for each time interval. For each time interval there are
500 data points. I want to change the dataset such that I have the following
format:



    t1        t2            t3   ................

    0.00208             0.00417 0.00625 .................

    a1       a2           a3 ...................

    b1       b2           b3 ...................

    c1        c2            c3 .................

    ...............................

    ................................



The link to the file is as follows:
https://www.dropbox.com/s/hc8n3qcai1mlxca/WAT_DEP.DAT



As you will see on the file, time for each interval is the second data of
the third line before the data starts. For the first time, t= 0.00208. I
need to change the data in several rows into one column. At last I need to
create a dataframe with the format shown above. In the sample above, a1, b1,
c1 are the data for time t1, and so on. 



The sample data is as follows:





    ** N:SNAPSHOT    TIME      DELT[S]

    ** WATER DEPTH [M]: (HP(L),L=2,LA)

          1800        0.00208   0.10000

         3.224     3.221     3.220     3.217     3.216     3.214     3.212
3.210     3.209     3.207

         3.205     3.203     3.202     3.200     3.199     3.197     3.196
3.193     3.192     3.190

         3.189     3.187     3.186     3.184     3.184     3.182     3.181
3.179     3.178     3.176

         3.175     3.174     3.173     3.171     3.170     3.169     3.168
3.167     3.166     3.164

         3.164     3.162     3.162     3.160     3.160     3.158     3.158
3.156     3.156     3.155

         3.154     3.153     3.152     3.151     3.150     3.150     3.149
3.149     3.147     3.147

         3.146     3.146     3.145     3.145     3.144     3.144     3.143
3.143     3.142     3.142

         3.141     3.142     3.141     3.141     3.140     3.141     3.140
3.140     3.139     3.140

         3.139     3.140     3.139     3.140     3.139     3.140     3.139
3.140     3.139     3.140

         3.139     3.140     3.140     3.140     3.140     3.141     3.141
3.142     3.141     3.142

         3.142     3.142     3.143     3.143     3.144     3.144     3.145
3.145     3.146     3.146

         3.147     3.148     3.149     3.149     3.150     3.150     3.152
3.152     3.153     3.154

         3.155     3.156     3.157     3.158     3.159     3.160     3.161
3.162     3.163     3.164

         3.165     3.166     3.168     3.169     3.170     3.171     3.173
3.174     3.176     3.176

         3.178     3.179     3.181     3.182     3.184     3.185     3.187
3.188     3.190     3.191

         3.194     3.195     3.196     3.198     3.199     3.202     3.203
3.205     3.207     3.209

         3.210     3.213     3.214     3.217     3.218     3.221     3.222
3.225     3.226     3.229

         3.231     3.233     3.235     3.238     3.239     3.242     3.244
3.247     3.248     3.251

         3.253     3.256     3.258     3.261     3.263     3.266     3.268
3.271     3.273     3.276

         3.278     3.281     3.283     3.286     3.289     3.292     3.294
3.297     3.299     3.303

         3.305     3.307     3.311     3.313     3.317     3.319     3.322
3.325     3.328     3.331

         3.334     3.337     3.340     3.343     3.347     3.349     3.353
3.356     3.359     3.362

         3.366     3.369     3.372     3.375     3.379     3.382     3.386
3.388     3.392     3.395

         3.399     3.402     3.406     3.409     3.413     3.416     3.420
3.423     3.427     3.430

         3.435     3.438     3.442     3.445     3.449     3.453     3.457
3.460     3.464     3.468

         3.472     3.475     3.479     3.483     3.486     3.491     3.494
3.498     3.502     3.506

         3.510     3.514     3.518     3.522     3.526     3.531     3.534
3.539     3.542     3.547

         3.551     3.555     3.559     3.564     3.567     3.572     3.576
3.581     3.584     3.589

         3.593     3.598     3.602     3.606     3.610     3.615     3.619
3.624     3.628     3.633

         3.637     3.642     3.646     3.651     3.655     3.660     3.664
3.669     3.673     3.678

         3.682     3.686     3.691     3.695     3.700     3.704     3.710
3.714     3.719     3.723

         3.728     3.733     3.738     3.742     3.747     3.752     3.757
3.761     3.766     3.771

         3.776     3.780     3.786     3.790     3.795     3.800     3.805
3.810     3.815     3.819

         3.825     3.829     3.835     3.839     3.845     3.849     3.855
3.859     3.865     3.869

         3.875     3.879     3.885     3.889     3.895     3.900     3.905
3.910     3.915     3.920

         3.926     3.930     3.935     3.941     3.945     3.951     3.956
3.961     3.966     3.972

         3.976     3.982     3.987     3.993     3.997     4.003     4.008
4.014     4.018     4.024

         4.029     4.035     4.039     4.045     4.050     4.056     4.061
4.066     4.071     4.077

         4.082     4.088     4.093     4.099     4.103     4.109     4.114
4.120     4.125     4.131

         4.136     4.142     4.147     4.153     4.157     4.163     4.168
4.174     4.179     4.185

         4.190     4.195     4.201     4.206     4.212     4.217     4.223
4.228     4.234     4.239

         4.245     4.250     4.256     4.261     4.267     4.272     4.278
4.283     4.289     4.294

         4.300     4.305     4.311     4.316     4.322     4.327     4.333
4.339     4.345     4.350

         4.356     4.361     4.367     4.372     4.378     4.383     4.389
4.394     4.400     4.405

         4.411     4.417     4.423     4.428     4.434     4.439     4.445
4.450     4.456     4.461

         4.467     4.473     4.478     4.484     4.489     4.495     4.500
4.506     4.511     4.517

         4.523     4.529     4.534     4.540     4.545     4.551     4.556
4.562     4.568     4.574

         4.579     4.585     4.590     4.596     4.601     4.607     4.613
4.619     4.624     4.630

         4.635     4.641     4.646     4.652     4.658     4.664     4.669
4.675     4.680     4.686

         4.691     4.697     4.703     4.709     4.714     4.720     4.725
4.731     4.736     4.741

    ** N:SNAPSHOT    TIME      DELT[S]

    ** WATER DEPTH [M]: (HP(L),L=2,LA)

          3600        0.00417   0.10000

         4.124     4.123     4.123     4.122     4.122     4.121     4.121
4.120     4.120     4.119

         4.118     4.117     4.117     4.116     4.116     4.115     4.115
4.114     4.114     4.114

         4.114     4.113     4.113     4.112     4.112     4.111     4.111
4.110     4.110     4.109

         4.109     4.109     4.109     4.108     4.108     4.107     4.107
4.106     4.107     4.106

         4.106     4.105     4.105     4.105     4.105     4.104     4.104
4.104     4.104     4.103

         4.103     4.103     4.102     4.102     4.102     4.102     4.101
4.102     4.101     4.101

         4.101     4.101     4.100     4.101     4.100     4.101     4.100
4.100     4.100     4.100

         4.100     4.100     4.100     4.100     4.100     4.100     4.100
4.100     4.100     4.100

         4.100     4.100     4.100     4.100     4.100     4.100     4.100
4.100     4.100     4.101

         4.100     4.101     4.100     4.101     4.101     4.101     4.101
4.102     4.101     4.102

         4.102     4.101     4.102     4.102     4.103     4.102     4.103
4.103     4.104     4.103

         4.104     4.104     4.105     4.104     4.105     4.105     4.106
4.106     4.107     4.106

         4.107     4.107     4.108     4.108     4.109     4.109     4.110
4.110     4.110     4.110

         4.111     4.111     4.112     4.112     4.113     4.113     4.114
4.114     4.115     4.115

         4.116     4.116     4.117     4.117     4.118     4.118     4.120
4.120     4.121     4.121

         4.122     4.122     4.122     4.123     4.123     4.125     4.125
4.126     4.126     4.127

         4.128     4.129     4.129     4.130     4.130     4.132     4.132
4.133     4.133     4.135

         4.135     4.136     4.137     4.138     4.138     4.139     4.140
4.141     4.141     4.143

         4.143     4.145     4.145     4.146     4.147     4.148     4.149
4.150     4.150     4.152

         4.152     4.154     4.154     4.156     4.156     4.158     4.158
4.160     4.160     4.162

         4.162     4.163     4.164     4.165     4.166     4.167     4.168
4.169     4.171     4.171

         4.173     4.173     4.175     4.176     4.177     4.178     4.180
4.180     4.182     4.183

         4.184     4.185     4.187     4.187     4.189     4.190     4.192
4.192     4.194     4.195

         4.197     4.197     4.199     4.200     4.202     4.203     4.204
4.205     4.207     4.208

         4.210     4.210     4.212     4.213     4.215     4.216     4.218
4.219     4.221     4.221

         4.223     4.224     4.225     4.227     4.228     4.230     4.231
4.233     4.234     4.236

         4.237     4.239     4.240     4.242     4.243     4.245     4.246
4.248     4.249     4.251

         4.252     4.254     4.255     4.257     4.258     4.260     4.262
4.264     4.265     4.267

         4.268     4.270     4.271     4.273     4.275     4.277     4.278
4.280     4.281     4.283

         4.285     4.287     4.288     4.290     4.291     4.294     4.295
4.297     4.298     4.301

         4.302     4.303     4.305     4.307     4.309     4.310     4.312
4.314     4.316     4.317

         4.320     4.321     4.323     4.325     4.327     4.328     4.331
4.332     4.334     4.336

         4.338     4.339     4.342     4.343     4.346     4.347     4.349
4.351     4.353     4.355

         4.357     4.359     4.361     4.362     4.365     4.366     4.369
4.370     4.373     4.374

         4.377     4.378     4.381     4.382     4.385     4.386     4.389
4.390     4.393     4.394

         4.397     4.398     4.400     4.402     4.404     4.406     4.408
4.411     4.412     4.415

         4.416     4.419     4.421     4.423     4.425     4.427     4.429
4.432     4.433     4.436

         4.437     4.440     4.442     4.444     4.446     4.449     4.450
4.453     4.455     4.457

         4.459     4.462     4.463     4.466     4.468     4.470     4.472
4.475     4.476     4.479

         4.481     4.484     4.485     4.488     4.490     4.492     4.494
4.497     4.499     4.501

         4.503     4.505     4.508     4.509     4.512     4.514     4.517
4.519     4.521     4.523

         4.526     4.528     4.530     4.532     4.535     4.537     4.540
4.541     4.544     4.546

         4.549     4.551     4.554     4.555     4.558     4.560     4.563
4.565     4.568     4.569

         4.572     4.574     4.577     4.579     4.582     4.584     4.586
4.588     4.591     4.593

         4.596     4.598     4.601     4.603     4.605     4.607     4.610
4.612     4.615     4.617

         4.620     4.622     4.624     4.627     4.628     4.631     4.633
4.636     4.638     4.641

         4.643     4.646     4.648     4.651     4.653     4.656     4.657
4.660     4.662     4.665

         4.667     4.670     4.672     4.675     4.677     4.680     4.682
4.685     4.687     4.690

         4.692     4.695     4.697     4.700     4.702     4.705     4.706
4.709     4.711     4.714

         4.716     4.719     4.721     4.724     4.726     4.729     4.731
4.734     4.736     4.741



Currently, I have around 10 columns of data for each time. I want to make a
data frame such that all those data on different columns will be combined in
1 column of data. So, I want to arrange the data columns such that first the
data on row 1 will be used and then data on second row and so on. This way,
we will have one column for one time.



Thank you for your help and suggestion. 



Best, 

Janesh


    [[alternative HTML version deleted]]

______________________________________________
R-help at 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.




More information about the R-help mailing list