1

我有很多坐标:

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

1 回答 1

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, , ... 而不是第 1、2、... 列xh2的矩阵或数据框)xh

于 2013-08-03T06:07:53.747 回答