Χωρική σύγκριση δεδομένων στην R

Κάνω τα πρώτα δειλά βήματα στον βασικό προγραμματισμό και στατιστική και έχω μία απορία, για την οποία το βασικό μου πρόβλημα είναι ότι δεν ξέρω πώς να ψάξω να βρω τη λύση διαδικτυακά

Υπάρχει το εξής ζήτημα: Έχω δύο αρχεία csv με σημεία, τις γεωγραφικές συντεταγμένες αυτών και κάποια χαρακτηριστικά τους (πχ διαστάσεις). Αυτό που θέλω να κάνω στη R είναι να φορτώσω αυτά τα αρχεία και να συγκρίνω κάποια datasets.

Οι πίνακες περιλαμβάνουν λίθινα και οστέινα εργαλεία. Αυτό που θέλω είναι να δημιουργήσω subsets για το κάθε αρχείο και να τα δω σε σύγκριση μεταξύ τους. Για παράδειγμα που έχουν βρεθεί λίθινα εργαλεία 45cm και οστέινα 50cm και πόσο κοντά ή μακριά είναι το ένα από το άλλο στο χώρο μελέτης.

Είναι εφικτό κάτι τέτοιο;

Αν ναι πώς θα μπορούσα να το ψάξω στο διαδίκτυο;

Ευχαριστώ πολύυυυυ

2 «Μου αρέσει»

Σίγουρα.

Σπάσ’ το πρόγραμμα σε μικρότερα προβλήματα και αναζήτησε πληροφορίες για καθένα ξεχωριστά. Π.χ. αναζήτησε “Datasets Datatypes in R”, “How to parse csv in R”, κοκ. Σχεδίαζε το πρόγραμμα βήμα-βήμα, ξεχωριστά την κάθε δουλειά που πρέπει να κάνει για να βγει το σύνολο, και ψάχνε στο δίκτυο τα βήματα ένα-ένα.

Καλή συνέχεια.

1 «Μου αρέσει»

Καλησπέρα και καλώς ήρθες!
Πολύ σωστά όπως λέει ο φίλος @Tokros, “διαίρει και βασίλευε”, αναζήτηση στα αγγλικά και σίγουρα θα βρεις ακόμα και tutorials για το πώς να γράφεις και να διαβάζεις .csv αρχεία στην R.
Με μια πρόχειρη αναζήτηση στην startpage, μερικά αποτελέσματα :

https://swcarpentry.github.io/r-novice-inflammation/11-supp-read-write-csv/index.html

2 «Μου αρέσει»

Η μαγική λέξη είναι: spatial

Αυτο που θέλεις είναι “r spatial data analysis”. Το google για αυτο το ερώτημα μου έβγαλε πολύ καλό υλικό, ακόμα και βιβλία.

1 «Μου αρέσει»

Ρίξε μια ματιά και εδώ:
https://www.youtube.com/user/Stavrakoudis/videos

Ευχαριστώ πολύ για τη βοήθεια!

Τα κατάφερα να χωρίσω τα δεδομένα σε dataframes ανάλογα με το ποιο είναι το υπό εξέταση ερώτημα κάθε φορά.

Τώρα έχω το εξής πρόβλημα αν μπορεί να βοηθήσει κάποιος: Οταν εισάγω ένα νέο csv αρχείο με δεδομένα ακολουθώ τα εξής βήματα:

pottery ← read.csv (file=“pots.csv”, header=TRUE)
coordinates(pottery) ← ~XCoord+YCoord

Όμως λαμβάνω ένα σφάλμα:
Error in .local(obj, …) : cannot derive coordinates from non-numeric matrix

Ωστόσο τα δεδομένα μου είναι αριθμητικά εφόσον έχουν εξαχθεί από το ArcGIS
Συγκεκριμένα έχουν ως εξής:

XCoord,YCoord,pottery.POINT_X,pottery.POINT_Y,Object(…)
1277.10140000,-915.96560000,1277.101400,-915.965600,P73(…)

Όποιος έχει κάποια ιδέα για το τι μπορεί να κάνω λάθος θα με βοηθούσε πάρα πολύ!

Μήπως αν χρησιμοποιούσες την as.numeric() συνάρτηση για να μετατρέψεις το object?

Ευχαριστώ πολύ, το δοκίμασα όπως και να απομονώσω τις στήλες με το pottery.xy = pottery[c('XCoord', 'YCoord')] αλλά εξακολουθώ να λαμβάνω το ίδιο σφάλμα

Παραθέτω και το str(pottery) σε περίπτωση που θα μπορούσε να βοηθήσει κάπως

str(pottery)

'data.frame':   601 obs. of  14 variables:

 $ XCoord         : chr  "1277.10140000" "1281.93990000" "1309.94460000" "1301.58720000" ...

 $ YCoord         : chr  "-915.96560000" "-930.18790000" "-939.57170000" "-931.36080000" ...

 $ pottery.POINT_X: chr  "1277.101400" "1281.939900" "1309.944600" "1301.587200" ...

 $ pottery.POINT_Y: chr  "-915.965600" "-930.187900" "-939.571700" "-931.360800" ...

 $ Object         : chr  "P73" "P474" "P587" "P629" ...

 $ Shape          : chr  "Amphora" "Jug" "Pithoid" "Pithos" ...

 $ Use            : chr  "Storing" "Pouring" "Storing" "Storing" ...

 $ Height         : chr  "86.8" "15" "NULL" "68.5" ...

 $ Fabric         : chr  "M" "S" "M" "S" ...

 $ Decoration     : chr  "Yes" "Yes" "Yes" "Yes" ...

 $ Pattern        : chr  "Running Drops" "NULL" "Bands" "Running Drops" ...

 $ Style          : chr  "Dark on light" "Painted" "Dark on light" "Dark on light" ...

 $ Floor          : chr  "No" "No" "No" "No" ...

 $ Fill           : chr  "No" "No" "No" "No" ...

Μπορείς να τσεκάρεις το pottery, πριν το κάνεις string, τι τύποι δεδομένων είναι?

Είναι αρχείο csv με τις γεωγραφικές συντεταγμένες των σημείων και κάποια χαρακτηριστικά αυτών όπως ύψος, διακόσμηση κτλ.

Εννοώ η R πώς τον βλέπει τον Matrix, πριν τον στείλεις στην συνάρτηση coordinates()?

Σαν πίνακα, συγκεκριμένα στο R studio μετά το read.csv() φαίνεται έτσι :
Screenshot_1

Άρα είναι συμβολοσειρές, strings (characters).
Ρίξε μια ματιά εδώ :

και εδώ βλέπεις την υλοποίηση της method coordinates() :

Όπου στο σημείο :

setMethod("coordinates", "matrix", 
	function(obj) {
		if (!is.numeric(obj))
			stop("cannot derive coordinates from non-numeric matrix")
		storage.mode(obj) <- "double"
		if (any(is.na(obj)))
			stop("NA values in coordinates")
		if (any(!is.finite(obj)))
			stop("non-finite coordinates")
		obj
	}
)