1

我有一个不同时间间隔的数据集。数据在每个时间间隔的数据之前有三个注释行。每个时间间隔有 500 个数据点。我想更改数据集,使我具有以下格式:

t1  t2  t3   ................
0.00208 0.00417 0.00625 .................
a1  a2  a3 ...................
b1  b2  b3 ...................
c1  c2  c3 .................
...............................
................................

该文件的链接如下:https ://www.dropbox.com/s/hc8n3qcai1mlxca/WAT_DEP.DAT

正如您将在文件中看到的,每个间隔的时间是数据开始前第三行的第二个数据。第一次,t = 0.00208。我需要将几行中的数据更改为一列。最后,我需要创建一个具有上述格式的数据框。在上面的示例中,a1、b1、c1 是时间 t1 的数据,依此类推。

很抱歉发布了一个相对较大的数据集。

感谢您的帮助。

添加了示例数据

样本数据如下:

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

目前,我每次都有 10 列的数据。我想将其创建为一列 500 个数据点。所以,我想安排数据列,以便首先使用第 1 行的数据,然后使用第 1 行的数据,依此类推。这样,我们将有一次一列。

4

3 回答 3

3

这将生成一个矩阵 ,result其中包含第一行中的时间和相应时间下方的列中的数据。

L <- readLines(infile)

nt <- length(grep("TIME", L)) # no. of TIME lines
nd <- round((length(L) / nt) - 3) # no. of data lines per time

# times
ix.times <- rep(c(FALSE, TRUE, FALSE), c(2, 1, nd))
times <- scan(text = L[ix.times]) [ c(FALSE, TRUE, FALSE) ]

# data
ix.dat <- rep(c(FALSE, TRUE), c(3, nd))
dat <- matrix(scan(text = L[ix.dat]), nc = nt)

result <- rbind(times, dat)

前几行是:

> head(result)
         [,1]    [,2]
times 0.00208 0.00417
      3.22400 4.12400
      3.22100 4.12300
      3.22000 4.12300
      3.21700 4.12200
      3.21600 4.12200
于 2013-04-11T22:32:36.533 回答
2

对于您问题的第一部分:删除评论行的想法是使用回收。fill=TRUE首先,我使用then读取所有数据:

dat <- read.table(file=file.Name,fill=TRUE)

然后,由于您有固定的行数,您可以这样做:

dat <- dat[c(rep(FALSE,3),rep(TRUE,500)),]

你会得到一个干净的 data.frame 。

我不明白你问题的第二部分。

于 2013-04-11T21:08:54.597 回答
1

第二部分解决方案:

首先,将样本数据称为sample。我假设下面的解决方案中有两列。您可以使用它lapply来应用到其他列。

col.1<-as.data.frame(sample[,1])
col.2<-as.data.frame(sample[,2])

Now col.1 and col.2 are dataframes. Try to have the same colnames for `rbind` to work.

sample.1<-rbind(col.1,col.2)
于 2013-04-11T22:29:06.090 回答