
Dear all,

I
have a grid of 720 columns by 360 rows of global population density
values, and hope to convert this to column format using the 'melt' command in the 'reshape' package. I'm not receiving
any errors as such,  but when the code has finished running, my output
looks like this:

> head(PopDens.long)
  Latitude Longitude PopDensity
1   -84.75        V1          0
2   -84.25        V1          0
3   -83.75        V1          0
4   -83.25        V1          0
5   -82.75        V1          0
6   -82.25        V1          0

> tail(PopDens.long)
       Latitude Longitude PopDensity
232658    87.25      V720        -99
232659    87.75      V720        -99
232660    88.25      V720        -99
232661    88.75      V720        -99
232662    89.25      V720        -99
232663    89.75      V720        -99

As
you can see, I'm getting strange 'V' values in the 'Longitude' column,
which don't correspond to my real Longitude values. I've had a good
look through the script and tried tweaking a few things, but with no
luck. I've pasted the code below, so that you can see what I've done,
and maybe you someone spot a fundamental error of mine, or something that
I'm missing.


columnnames <- sprintf("%.2f", seq(from = -179.75, to = 179.75, length = 720))
rnames <- sprintf("%.2f", seq(from = 89.75, to = -89.75, length = 360))

read.table("gpw_pop_density_hd_1995a.asc", colClasses = "numeric", na = "-99") -> PopDens
 
colnames <- columnnames
rownames <- rnames

library(reshape)

PopDens$Latitude <- rownames

PopDens.long <- melt(PopDens, id.var = "Latitude", na.rm = TRUE)
names(PopDens.long) <- c("Latitude", "Longitude", "PopDensity")

head(PopDens.long)


Am
I right in thinking that this *should* also remove the -99s (NA
values)? Because at present, the lower end ot the file looks like this:

> tail(PopDens.long)
       Latitude Longitude PopDensity
232658   -87.25      V720        -99
232659   -87.75      V720        -99
232660   -88.25      V720        -99
232661   -88.75      V720        -99
232662   -89.25      V720        -99
232663   -89.75      V720        -99

Again,
I've almost certainly made an error somewhere! In any case, is there
also a way of telling the code to also ignore -88 values as well as the -99s?

Many thanks for your help.

Best wishes,

Steve

_________________________________________________________________
The John Lewis Clearance - save up to 50% with FREE delivery

	[[alternative HTML version deleted]]

