あなたの質問では、データセットを data.frame または matrix に既に読み込んでいるかどうかが明確ではありません。したがって、次の例では、テキスト ファイルにデータ セットがあると仮定します。
# read in data
dataset = read.table("dataset.txt", header=T)
# ... or use example data
dataset = read.table(text="ID X Y
1 118 10
2 119 50
3 100 12
4 101 12", header=T, sep=" ")
# create a matrix from columns X & Y and use project as in the question
project(as.matrix(dataset[,c("X","Y")]), "+proj=utm +zone=51 ellps=WGS84")
# [,1] [,2]
# [1,] -48636.65 1109577
# [2,] 213372.05 5546301
# ...
アップデート:
コメントは、問題がproject()
data.frame への適用に起因することを示唆しています。project()
をチェックするため、data.frames では機能しませんis.numeric()
。したがって、上記の例のようにデータを行列に変換する必要があります。を使用するコードに固執したい場合cbind()
は、次のことを行う必要があります。
X <- dd[,"X"]
Y <- dd[,"Y"]
xy <- cbind(X,Y)
dd["X"]
との違いdd[,"X"]
は、後者は data.frame を返さず、その結果cbind()
、data.frame ではなくマトリックスを生成することです。