小编apr*_*ian的帖子

来自 R 中经纬度点簇的多边形

我正在尝试从将接触所有外部点的点边界集群创建多边形。任何有助于改进我的代码的帮助将不胜感激。

library(dplyr)
library(sf)
    df<- read.table(text ="lon  lat
    74.03687    30.17482
    74.23605    30.23773
    74.24127    29.95988
    74.29211    30.07575
    74.25612    30.17687
    74.15972    30.06242
    74.06484    30.11025
    74.36046    30.02749
    74.08133    30.01889
    74.26168    30.16881
    73.91083    30.01378
    74.00881    30.07585
    74.40638    29.97712
    74.34974    30.22231
    74.20501    30.11133
    74.18108    30.01113
    74.00717    30.11362
    73.94891    30.03807
    74.18977    30.14367
    74.18857    30.13621
    74.19862    30.15222
    74.19376    30.13425",header= T)
    polygon <- df %>%
      st_as_sf(coords = c("lon", "lat"), crs = 4326) %>%
      summarise(geometry = st_combine(geometry)) %>%
      st_cast("POLYGON")
    plot(polygon)  
Run Code Online (Sandbox Code Playgroud)

在单个多边形中需要像蓝线这样的输出。 在此处输入图片说明

r polygon r-sf

3
推荐指数
1
解决办法
1193
查看次数

在所有 NA 的情况下,R 将行总和返回为零

在使用 na.rm =T 计算 rowSum 时所有行都是 NA 的情况下,无论如何要避免 0 作为结果

在下面的示例中,行总和为零,以防所有行都是 NA 但我在结果中需要 NA。我不能跳过使用 na.rm = T 因为其他情况可能有一些 NA。
我正在专门寻找数据表解决方案。

`df <- data.table::fread("X Y
2   26
3   NA
0 0
NA  NA
4   5
", header = TRUE)
df[,Sum:=rowSums(.SD,na.rm = T), .SDcols = names(df)]`
Run Code Online (Sandbox Code Playgroud)

r data.table

3
推荐指数
1
解决办法
1187
查看次数

grep名称使用数据表中的正则表达式

我如何使用正则表达式模式从R数据表中复制列。

我需要提取具有字符串“ nbr [0-9] _” *的列,例如示例nbr1_L或nbr6_L

   names<- c("nbr4","nbr4_L",   "nbr5"  ,"nbr6_L",  "nbr7_L"    ,"nbr4_L"   ,"nbr4_L")
    dt<- data.table(cbind("aa","bb","cc","dd","ff","gg","hh"))
    setnames(dt,names)
Run Code Online (Sandbox Code Playgroud)

我在下面尝试

dt[, .SD, .SDcols =  names(dt) %like% "nbr*_*"]

grep('^nbr\\d+\\_\\*$', names(dt), value=TRUE)
Run Code Online (Sandbox Code Playgroud)

regex r data.table

2
推荐指数
1
解决办法
271
查看次数

grep with $ in string

在R中如何grep具有$ in字符串的内容.在下面这个例子我需要grep字符串"NB6106 $ MU-MU.rma"

x<-c("NB6106$MU-MU.rma", "NB610634$MU-MU.rma")

x[grep(pattern="*6106$*.rma", x = x)] #does not work
Run Code Online (Sandbox Code Playgroud)

regex r

2
推荐指数
1
解决办法
104
查看次数

标签 统计

r ×4

data.table ×2

regex ×2

polygon ×1

r-sf ×1