使用循环在许多坐标上使用'cbind'

时间:2013-08-03 05:53:42

标签: r spatial cbind

我有很多坐标:

> 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)))

1 个答案:

答案 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))))

(我不禁想知道你为什么使用单独的变量xh1xh2,...而不是第1,2列的矩阵或数据框xh, ...)