[R] How to create gridded data
David L Carlson
dc@rl@on @ending from t@mu@edu
Tue Nov 13 15:56:02 CET 2018
Sarah's answer is probably better depending on what you want to do with the resulting data, but here's a way to go from your original DF1 to DF2:
> DF1 <- structure(list(latitude = c(45.5, 45.5, 45.5, 45.5, 46, 46, 46,
+ 46), longitude = c(110.5, 111, 111.5, 112, 110.5, 111, 111.5,
+ 112), Precip = c(3.2, 5, 1.8, 2, 6.1, 4.5, 7.8, 5.5)),
+ class = "data.frame", row.names = c(NA, -8L))
>
# Convert to table with xtabs()
> DF2 <- xtabs(Precip~latitude+longitude, DF1)
>
# Reverse the order of the latitudes
> DF2 <- DF2[rev(rownames(DF2)), ]
> DF2
longitude
latitude 110.5 111 111.5 112
46 6.1 4.5 7.8 5.5
45.5 3.2 5.0 1.8 2.0
# Convert to a data frame
> DF2 <- as.data.frame.matrix(DF2)
> DF2
110.5 111 111.5 112
46 6.1 4.5 7.8 5.5
45.5 3.2 5.0 1.8 2.0
----------------------------------------
David L Carlson
Department of Anthropology
Texas A&M University
College Station, TX 77843-4352
-----Original Message-----
From: R-help <r-help-bounces using r-project.org> On Behalf Of Sarah Goslee
Sent: Tuesday, November 13, 2018 8:16 AM
To: lily li <chocold12 using gmail.com>
Cc: r-help <r-help using r-project.org>
Subject: Re: [R] How to create gridded data
If you want an actual spatial dataset, the best place to ask is R-sig-geo
R has substantial capabilities for dealing with gridded spatial data,
including in the sp, raster, and sf packages.
Here's one approach, creating a SpatialGridDataFrame, which can be
exported in any standard raster format using the rgdal package.
DF2 <- DF1
coordinates(DF2) <- ~longitude + latitude
gridded(DF2) <- TRUE
fullgrid(DF2) <- TRUE
I recommend Roger Bivand's excellent book:
https://www.springer.com/us/book/9781461476177
and there are abundant web tutorials.
Sarah
On Tue, Nov 13, 2018 at 2:22 AM lily li <chocold12 using gmail.com> wrote:
>
> Hi R users,
>
> I have a question about manipulating data. For example, I have DF1 as the
> following, how to transform it to a gridded dataset DF2? In DF2, each value
> Precip is an attribute of the corresponding grid cell. So DF2 is like a
> spatial surface, and can be imported to ArcGIS. Thanks for your help.
>
> DF1
> latitude longitude Precip
> 45.5 110.5 3.2
> 45.5 111 5.0
> 45.5 111.5 1.8
> 45.5 112 2.0
> 46 110.5 6.1
> 46 111 4.5
> 46 111.5 7.8
> 46 112 5.5
> ...
>
>
> DF2
> 6.1 4.5 7.8 5.5
> 3.2 5.0 1.8 2.0
> ...
>
--
Sarah Goslee (she/her)
http://www.numberwright.com
______________________________________________
R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
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