On Tue, Jun 17, 2008 at 5:59 AM, Steve Murray <[EMAIL PROTECTED]> wrote:
>
> Dear all,
>
> I have used 'read.table' to create a data frame of 720 columns and 360 rows 
> (and assigned this to 'Jan'). The row and column names are numeric:
>
>> columnnames <- sprintf("%.2f", seq(from = -179.75, to = 179.75, length = 
>> 720)).
>> rnames <- sprintf("%.2f", seq(from = -89.75, to = 89.75, length = 360))
>> colnames(Jan) <- columnnames
>> rownames(Jan) <- rnames
>
> A sample of the data looks like this:
>
>> head(Jan)
>       -179.75 -179.25 -178.75 -178.25 -177.75 -177.25 -176.75 -176.25 -175.75
> -89.75   -56.9   -64.2    56.2   -90.0    56.9   -29.0   -91.0   34.0     -9.1
> -89.25    37.9    19.3     -0.4   -12.3   -11.8   -92.1     9.2   -23.5     
> -0.2
> -88.75    47.4      3.1   -47.4    46.4    34.2      6.1   -41.3    44.7   
> -10.3
> -88.25   -20.3    34.5   -67.3   -99.9    37.9     -9.3    17.7   -17.2    
> 63.4
> -87.75   -46.4    47.4    12.4   -48.3      9.3   -33.8    38.1    10.8   
> -34.1
> -87.25   -48.4    10.3   -89.3   -33.0     -1.1   -33.1    81.2    -8.3   
> -47.2
>
>
> I'm hoping to get the whole dataset into the form of columns, so that, for 
> example, the first row (as shown above) would look like this:
>
> Latitude   Longitude   Value
> -89.75      -179.75     -56.9
> -89.75      -179.25     -64.2
> -89.75      -178.75      56.2
> -89.75      -178.25     -90.0
> -89.75      -177.75      56.9
> -89.75      -177.25     -29.0
> -89.75      -176.75     -91.0
> -89.75      -176.25      34.0
> -89.75      -175.75      -9.1
>
>
> As you can see, this would require the repeated printing of the the row and 
> column names (in this case '-89.75') - so it's not just a case of rearranging 
> the data, but creating 'more' data too.
>
> I've tried to achieve this using 'reshape' and 'stack' (their help files and 
> after looking through the mailing archives), but I'm obviously doing 
> something wrong. For reshape, I'm getting errors relating to the commands I 
> enter, and for stack, I can only produce two columns from my data (with the 
> additional 3rd column being a row count). In any case, these two columns 
> refer to the wrong values (it's producing output in the form of: row count 
> number, Longitude, Value).

This is pretty easy with the reshape package:

install.packages("reshape")
library(reshape)
jan_long <- melt(Jan)

You can find out more at http://had.co.nz/reshape

Hadley

-- 
http://had.co.nz/

______________________________________________
[email protected] 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