【问题标题】:Working with Large PolygonsDataFrame in R - Adding Time Variable在 R 中使用大型 PolygonsDataFrame - 添加时间变量
【发布时间】:2021-03-20 22:26:01
【问题描述】:

我是这里的新手,尤其是在空间数据分析方面。我目前正在攻读博士学位,主题是“心理健康的空间分析”,但我被困在了某一点上。

我正在处理有代表性的调查,我可以将调查值添加到多边形数据框并绘制它们。现在我有一个问题,很遗憾我不知道该怎么做,希望您能帮助我。

这是我的多边形数据框:

class       : SpatialPolygonsDataFrame 
features    : 431 
extent      : 3280359, 3921536, 5237511, 6103443  (xmin, xmax, ymin, ymax)
crs         : +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7 +units=m +no_defs 
variables   : 23
names       : ADE, GF, BSG,    RS,   AGS,       SDV_RS,       GEN,        BEZ, IBZ,           BEM,  NBD, SN_L, SN_R, SN_K, SN_V1, ... 
min values  :   4,  2,   1, 01001, 01001, 010010000000, Ahrweiler,      Kreis,  40,            --,   ja,   01,    0,   00,    00, ... 
max values  :   4,  4,   1, 16077, 16077, 160770001001,   Zwickau, Stadtkreis,  46, Sonderverband, nein,   16,    9,   91,    00, ...

EDIT MY QUESTION FROM THIS POINT

我有一个包含以下信息的数据框:

> df
# A tibble: 99,014 x 6
   date                  KRS WMW10 WMW25 NewInfect DeprIndex
   <dttm>              <dbl> <dbl> <dbl>     <dbl>     <dbl>
 1 2020-03-14 00:00:00  1001    NA    NA         4     -4.08
 2 2020-03-18 00:00:00  1001    NA    NA         2     -4.08
 3 2020-03-19 00:00:00  1001    NA    NA         4     -4.08
 4 2020-03-20 00:00:00  1001    NA    NA         2     -4.08
 5 2020-03-21 00:00:00  1001    NA    NA         1     -4.08
 6 2020-03-24 00:00:00  1001    NA    NA         1     -4.08
 7 2020-03-26 00:00:00  1001    NA    NA         4     -4.08
 8 2020-03-27 00:00:00  1001    NA    NA         1     -4.08
 9 2020-03-28 00:00:00  1001    NA    NA         2     -4.08
10 2020-03-29 00:00:00  1001    NA    NA         1     -4.08
# ... with 99,004 more rows

我每天的日期从 2020 年 1 月 1 日到 2020 年 11 月 25 日。变量 KRS 是县代码。其他变量是度量。

在另一个步骤中,我收集了 df:

df2<-df%>%
  select(date,KRS,WMW10,WMW25,NewInfect,DeprIndex) %>%
  gather(key = "variable", value="value", -date,-KRS)

所以我得到了这样的新df:

 A tibble: 396,056 x 4
   date                  KRS variable value
   <dttm>              <dbl> <chr>    <dbl>
 1 2020-03-14 00:00:00  1001 WMW10       NA
 2 2020-03-18 00:00:00  1001 WMW10       NA
 3 2020-03-19 00:00:00  1001 WMW10       NA
 4 2020-03-20 00:00:00  1001 WMW10       NA
 5 2020-03-21 00:00:00  1001 WMW10       NA
 6 2020-03-24 00:00:00  1001 WMW10       NA
 7 2020-03-26 00:00:00  1001 WMW10       NA
 8 2020-03-27 00:00:00  1001 WMW10       NA
 9 2020-03-28 00:00:00  1001 WMW10       NA
10 2020-03-29 00:00:00  1001 WMW10       NA
# ... with 396,046 more row

我想我现在有一个长格式的 df2。但就像我的第一个问题一样,我想以每周的方式分析数据。所以我以这种方式建立了一个新的可变周:

df2$week<-strftime(df2$date, format = "%V")

到目前为止,这工作非常顺利。我现在有 48 周 (ISO 8601)。

在这一点上我有问题。我想用 spacetime 包制作一个时空数据框。并使用教程作为指导 (https://edzer.github.io/UseR2016/)。

所以我正在使用线程开头提到的多边形数据框。在教程中,他们使用包 map 创建地图,但我无法使用 map 创建县级德国地图,因此我下载了 shapefile。到目前为止没有问题,我想....

我的代码:

weeks<- 01:48
time<-as.POSIXct(paste(weeks, sep = ""), tz="GMT")

Error in as.POSIXlt.character(x, tz, ...) : 
  character string is not in a standard unambiguous format

就我对本教程的理解而言,我的下一步是:

library(spacetime)
df_st<-STFDF(map,time,df3)

#I know, I should use the command **STSDF** because of the missing values,
but with **STSDF** I have the problem with _index_, _time_ and _endTime_

STSDF(sp = map,time = time ,data = df3 ,index = ? ,endTime = ?)

所以我坚持这一点。我的问题是如何使用我拥有的数据创建 spacetimeDF?

我希望有人能真正帮助我。

亲切的问候 阿里

【问题讨论】:

    标签: r geospatial raster spatial rgdal


    【解决方案1】:

    你可以使用merge方法

    map2 <- merge( map, NewInfect, by.x="AGS", by.y="KRS")
    

    以其他方式这样做是非常冒险的,你不应该直接写入@data槽,因为这可能会弄乱几何和属性之间的关系。

    由于您对同一个几何图形有很多观察,您还需要使用参数duplicateGeoms=TRUE

    map2 <- merge( map, NewInfect, by.x="AGS", by.y="KRS", duplicateGeoms=TRUE)
    

    这会导致多边形几何形状的大量重复。您还可以根据需要通过子集NewInfect 一次将它们制作一周。或者你可以研究时空物体(但一开始可能不太容易使用)

    【讨论】:

    • 我真的很高兴,你回答了。我希望你能回答我的问题。非常感谢!我按照你说的做了,它似乎奏效了 - 再次感谢你。从这一点来看,我不知道该怎么做。我的主要问题是:如何分析数据,例如制作回归模型?你对我有什么提示和帮助吗?喜欢一个非常好的教程吗?
    • 可以联系到您吗?我真的坚持了一点,我知道如果我得到解决方案的提示,我会去做。我希望我能联系到你。最好的问候阿里
    • 抱歉,我无法提供这样的一般帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多