2

csv のシェープファイルとデータ テーブルの間の空間結合を試行しているときに、問題が発生しました。

Here's what my data looks like:
Point Shapefile's attribute data (StudentID):
ID      Address  Long  Lat
123.00  street   long  lat
456.00  street   long  lat
789.01  street   long  lat
223.00  street   long  lat
412.02  street   long  lat

Data Table (Table):
ID     Name Age School
123.00 name age school
456.00 name age school
789.01 name age school
223.00 name age school
412.02 name age school

重要な注意:StudentID約 500 のレコードが含まれていますが、テーブルには 250 しかありません。一部のレコードはStudentID一致しません。

問題 1:

Rにインポートするためにcsvに変換したExcelファイルがあります。結合を実行しているときに、ID列でデータ形式の一部が変更されていることに気付きました(同じ123.00になるでしょう123; 456.00456; 789.01。ただし、メモ帳でcsvファイルを開くと、フォーマットは正しいです。テーブルを .txt ファイルとして読み取ろうとしましたが、うまくいきませんでした。なぜこれが起こるのか、これを克服する方法は何ですか?

IDS は下 2 桁に関係なく一意であるため、完全一致に基づいてデータを結合できなかったため、部分結合を試みることにしました。これが問題 2 につながりました...

問題 2:

これが私が2つを結合するために使用したものです:

StudentID@data = data.frame(StudentID@data, data[charmatch(StudentID@data$ID,Table$ID,])

これによりデータが結合されましたが、予想どおり、NA を含む行も返されました。na.omit を使用して行を削除すると、結果のデータには一致するすべての行が含まれていました。ただし、シェープファイルには、すべてのポイントがまだ残っています。レコードが削除されたときに、これらのドットが残ったのはなぜですか?

4

1 に答える 1

0

問題 1:

,Excel では、カンマを小数点記号として使用して浮動小数点値をエクスポートすることがあります。これにより、csv インポートで問題が発生する可能性があります。Excel が.小数点記号にポイントを使用していることを確認するか、インポート時に区切り記号を指定しますread.csv('file.csv', sep=';')

問題 2: シェープファイルから na 値を持つポイントを削除する場合、不要になった行を選択するための論理ベクトルが必要です。student_pointsこれがどのように見えるかの例を次に示します(シェープファイルの名前が .

student_points <- student_points[!is.na(student_points@data$age), ]

于 2013-03-07T19:26:38.467 に答える