Tengo una matriz. Se ha lat,lon,el tiempo y el valor. El tiempo comienza de 1 a 300. Aquí se parte de la matriz de tiempo=1.

myarray[,,1]
     lon                        
    lat -124.5  -123.5  -122.5  -121.5  -120.5  -119.5  -118.5
31.5    0   0   0   0   0   0
32.5    0   0   0   0   0   0
33.5    0   0   0   0   0   0
34.5    0   0   0   0   0   0
35.5    0   0   0   0   0   0
36.5    0   0   0   768.1   0   126.2
37.5    0   0   0.2 0   811 212.1
38.5    0   0   3055    0   243.9   243.7
39.5    0   0   1.5 0.1 3   0
40.5    0.1 16.8    4.3 0.5 2.1 0
41.5    0.2 398.6   0.4 1.2 1.6 0
42.5    0   0.1 0.9 0.1 0.7 0

Quiero utilizar la escritura».csv» y «bucle» en el mismo tiempo para leer los datos de la matriz para cada paso de tiempo (de 1 a 300) y almacenarlos en el individuo .los archivos csv que ha «yo» como índice. He utilizado este comando, pero parece que no funciona:

for (i in 1:300)    write.csv(myarray[,,i],"myarray.i.csv")
Mira ?paste de cómo construir una cadena donde i se evalúa el valor de la corriente entre 1 y 300 en lugar de sólo tomar como la letra «i».
algo así como paste("myarray", i, "csv", sep = ".")
Gracias. Se trabajó.

OriginalEl autor SaZa | 2013-10-20

3 Comentarios

  1. 9

    Hay varias maneras de ir sobre esto:

    paste('myarray', i, 'csv', sep = '.')

    o:

    sprintf('myarray.%d.csv', i)

    Yo prefiero la última.

    +1 para usar sprintf
    es sprintf preferido sólo por el limpiador de sintaxis o hay otras razones que a él también?

    OriginalEl autor Paul Hiemstra

  2. 1

    Una forma es

    for (i in 1:300)  {
    write.table(myarray[,,i],file=""myarray.i.csv"",append=TRUE,sep=",",col.names=TRUE,row.names=TRUE) 
      }

    OriginalEl autor MFR

  3. 0

    Esto debería funcionar bien:

    n = dim(mydata)[3]
    
    for(i in 1:n) {
      #unpack a 3D array
      mat = mydata[,,i]
      form = sprintf('subject_%s.csv', i)
      write.csv(mat, file = form)
    
    }

    OriginalEl autor seralouk

Dejar respuesta

Please enter your comment!
Please enter your name here