我正在处理geosphere::gcIntermediate的输出数据,该数据生成Great Circle路点。输出是一个列表。然后,我确定各个列表项的长度:
library(geosphere)
from = data.frame(lon = sample(-180:180,5), lat = sample(-90:90,5))
to = data.frame(lon = sample(-180:180,5), lat = sample(-90:90,5))
plot(gcIntermediate(from, to, n=30, breakAtDateLine=T, sp=T))
gcs = gcIntermediate(from, to, n=30, breakAtDateLine=T, sp=F)
print(gcs)
l = lapply(gcs, length)
但似乎不可能将这个列表转换成一个简单的向量。我尝试的任何东西都会产生一个维度列表或矩阵[100,1],例如:
as.matrix(l)[,1]
as.vector(l)
尽管这些数据是一个矩阵,但其内部结构是否有所不同?例如,将其与进行比较
m = as.matrix(1:10)
m[,1]
感谢您的帮助。
我会使用cbind
或rbind
,具体取决于您想要什么。如果这回答了您的问题,请将您的问题标题修改为已知原因。:)
> do.call("rbind", l)
[,1]
[1,] 2
[2,] 60
[3,] 60
[4,] 60
[5,] 60
> do.call("cbind", l)
[,1] [,2] [,3] [,4] [,5]
[1,] 2 60 60 60 60