我有很多坐标:
> xh1
[1] 257283.7 258592.6 261811.6 262768.6 257283.7
> yh1
[1] 2639722 2640722 2640722 2639722 2639722
> xh2
[1] 257283.7 256523.3 263725.6 262768.6 257283.7
> yh2
[1] 2639722 2638722 2638722 2639722 2639722
... ...
使用'cbind',我想准备要转换为多边形的坐标:
poly1<-cbind(xh1,yh1)
poly2<-cbind(xh2,yh2)
... ...
> poly1
xh1 yh1
[1,] 257283.7 2639722
[2,] 258592.6 2640722
[3,] 261811.6 2640722
[4,] 262768.6 2639722
[5,] 257283.7 2639722
... ...
poly<- Polygon(poly1)
... ...
是否可以使用循环在R ??中执行'cbind'任务我知道下面的任何内容都不起作用:
poly<-lapply(1:100, function(i) cbind(paste0("xh",i), paste0("yh",i)))
答案 0 :(得分:2)
使用get
获取给定名称的变量值。因此,在上面的代码中,将paste0("xh",i)
替换为get(paste0("xh",i))
,同样替换为yh
。换句话说,试试
poly<-lapply(1:100, function(i) cbind(get(paste0("xh",i)), get(paste0("yh",i))))
(我不禁想知道你为什么使用单独的变量xh1
,xh2
,...而不是第1,2列的矩阵或数据框xh
, ...)