Net Squared Displacement

Alles zum Thema der beschreibenden Statistik

Moderator: jogo

bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: Net Squared Displacement

Beitrag von bigben »

Cool, das ursprüngliche Problem, dass Datumsangaben mal mit Querstrichen und mal mit Einfachpunkten codiert sind verschwindet einfach, wenn man Excel als Zwischenschritt weglässt. In den Beispieldaten ist alles einheitlich mit Querstrichen und amerikanischer Reihenfolge codiert.
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Net Squared Displacement

Beitrag von Athomas »

Cool, das ursprüngliche Problem ... verschwindet einfach, wenn man Excel als Zwischenschritt weglässt.
So ist es wohl! Unter anderem deswegen dränge ich immer darauf, dass Fragesteller ihr Netto-Problem darstellen - und nicht den Zustand bei Abbruch des Bearbeitungsversuches :lol: !
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: Net Squared Displacement

Beitrag von bigben »

...und die konkreten Daten. Datumsangaben im "Format (YYYY / MM / DD)" kamen in den Musterdaten beispielsweise überhaupt nicht vor und ggf. dafür geschriebener Code könnte nicht funktionieren. Immerhin sind die Daten dann jetzt im PosixCT-Format, das, wenn ich das richtig überflogen habe, auch von dem angepeiltern Skript genutzt wird. Wir müssen jetzt noch hoffen, dass die 4 Zeilen Beispieldaten auch wirklich die Daten repräsentieren. Hoffentlich hat Excel nicht einige Zellen verändert, weil es inkonsistente Spalten in den Originaldaten gibt.

@Arthemisia: Ist denn die Verarbeitung ohne Excel für Dich jetzt ok oder hast Du noch andere Anpassungen in Excel vorgenommen, die jetzt auch in R realisiert werden müssen?

GLG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Arthemisia
Beiträge: 17
Registriert: Fr Aug 26, 2022 2:47 pm

Re: Net Squared Displacement

Beitrag von Arthemisia »

Hallo,
der Tipp mit dem Data Table hat funktioniert. Im Data Frame ist jetzt der Zeitstempel als "chr" markiert und im richtigen Datumsformat für die Weiterverarbeitung. Nächstes Problem: In der Spalte "site" gibt es einmal "Dümmer" und einmal "Großes Meer" für die beiden Populationen. R kann mit "ü" und "ß" nichts anfangen, es gibt dann in der Ausgabe "D\xfcmmer", und beim Versuch, über subset die Datensätze zu teilen, hielt R das "\" für ein Steuerungssymbol.
Das bedeutet, ich muss dann doch für die Spalte "site" die Excel Tabelle verwenden. Ist wohl doch nicht so einfach, Excel komplett außen vorzulassen.

@Bernhard: sorry, aber deinen letzten Kommentar fand ich ein wenig fehl am Platz.
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: Net Squared Displacement

Beitrag von bigben »

Arthemisia hat geschrieben: Mi Sep 07, 2022 2:23 pm@Bernhard: sorry, aber deinen letzten Kommentar fand ich ein wenig fehl am Platz.
Vielleicht hast Du mich damit auch falsch verstanden? Das war kein Kommentar, sondern eine ehrliche Frage. Ich wollte wissen, ob es noch andere Anpassungen gibt von denen Du glaubst, dass Du sie besser in Excel machen solltest und tatsächlich, hast Du noch irgendwelche Umlaute zu verarbeiten und glaubst, dass Du das besser in Excel machen solltest. Ich habe also mit meinem letzten Kommentar ehrlich nach genau dem gefragt, was Du jetzt als Problem hast.

Umlaute und `ß` sind eine Frage der Codierung / des Encodings der CSV-Datei. R geht normalerweise von utf8 aus, aber auch das noch nicht so richtig lange.
Der schnellste und einfachste Weg ist vielleicht, wenn Du die CSV-Datei in RStudio in einem Texteditor öffnest, dort mit Suchen&Ersetzen (Strg+Shift+J) die fraglichen Buchstaben durch etwas ersetzt, was Encoding-unkritisch ist, beispielsweise ß durch ss oder sz und ü durch ue und dann aus dem Texteditor wieder als CSV abspeicherst. Dann hast Du kein Risiko wegen Excel und musst Dich auch nicht lange mit Encodings beschäftigen und verwendest ein Werkzeug, das Du bestimmt schon auf dem Rechner hast.
Natürlich könnte man das auch mir R Code machen, wenn es öfter vorkäme. Wenn das nur einmal anfällt, würde ich es über den Texteditor machen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Arthemisia
Beiträge: 17
Registriert: Fr Aug 26, 2022 2:47 pm

Re: Net Squared Displacement

Beitrag von Arthemisia »

ja, das hat funktioniert, danke
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: Net Squared Displacement

Beitrag von bigben »

Gerne. Eine elegantere Alternative wäre gewesen: Finde heraus, welches Encoding die einzulesende Datei benutzt und gibt das dann beim Einlesen der Daten an: https://druedin.com/2017/01/28/set-enco ... r-windows/
und https://abctool.gitlab.io/encoding-dete ... html?_lang

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Net Squared Displacement

Beitrag von Athomas »

R kann mit "ü" und "ß" nichts anfangen, es gibt dann in der Ausgabe "D\xfcmmer", ...
Das kann man so nicht sagen - außerdem steckt das Problem mit den falsch codierten "Spezialzeichen" schon in Deinen Beispielsdaten: da gibt es sowohl "Dümmer" wie auch "rigned as adult female in family catch at Lake Dümmer" - sind da mehrere Dateien gemischt worden?
Arthemisia
Beiträge: 17
Registriert: Fr Aug 26, 2022 2:47 pm

Re: Net Squared Displacement

Beitrag von Arthemisia »

Ja, genau das ist ja das Problem.
Es wurden unterschiedliche GPS Geräte verwendet, die z.T. ihre Daten in unterschiedlichen Formaten abgespeichert hatten. Außerdem wurden nachträglich Daten verändert und zusammengeführt.
Da jetzt aber nur die Spalten für "trackId", "site", "timestamp", "location.long" und "location.lat" für das NSD Skript von Interesse sind, sind (mir persönlich im Moment) die anderen Spalten egal. Generell ist das aber echt ein Problem bei der Verarbeitung solcher Datensätze.
Ich bin echt froh, dass ihr mir hier helfen konntet. Danke dafür.
Arthemisia
Beiträge: 17
Registriert: Fr Aug 26, 2022 2:47 pm

Re: Net Squared Displacement

Beitrag von Arthemisia »

So, ich habe jetzt den Anfang zum Laufen bekommen:

Code: Alles auswählen

library(trip)
library(stringr)
library(adehabitatHR)
library(lattice)
library(gmodels)
library(spatstat)
library(maptools)
library(data.table)

read.csv ("raw_data3.csv")
dataNSD <- read.csv ("raw_data3.csv", haeder = TRUE, sep = ",")

DT <- fread("raw_data3.csv")
DT[  , ":="(Timestamp = as.POSIXct(timestamp, format="%m/%d/%Y %H:%M:%S"))]
dataNSD <- DT[  , c("trackId", "site", "timestamp", "location.long", "location.lat")]
setnames(dataNSD, c("location.long", "location.lat"), c("coords_x1", "coords_x2"))

List_D <-read.table("list_IDduemmer.txt", sep="\t", header=TRUE)
head(List_D) 
trackIdDuemmer <- c(List_D)
str (trackIdDuemmer)

List_GM <-read.table("list_IDgrossesMeer.txt", sep="\t", header=TRUE)
head(List_GM) 
trackIdGrossesMeer <- c(List_GM)
str (trackIdGrossesMeer)

data.Duemmer <- subset (dataNSD, site == "Duemmer")
duemmer <- data.frame (data.Duemmer$trackId, data.Duemmer$timestamp, data.Duemmer$coords_x1, data.Duemmer$coords_x2 )
str (duemmer)

data.GrossesMeer <- subset (dataNSD, site == "Grosses Meer")
GrossesMeer <- data.frame (data.GrossesMeer$trackId, data.GrossesMeer$timestamp, data.GrossesMeer$coords_x1, data.GrossesMeer$coords_x2 )
str (GrossesMeer)

coords.Duemmer <-data.frame(x = duemmer$data.Duemmer.coords_x1, y = duemmer$data.Duemmer.coords_x2)
crsD <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
head(coords.Duemmer)
plot(coords.Duemmer, main = "Coordinates GPS Data Duemmer See", xlab = "Longitude Degrees East", ylab = "Latitude Degrees North")

coords.GrossesMeer <- data.frame(x = GrossesMeer$data.GrossesMeer.coords_x1, y = GrossesMeer$data.GrossesMeer.coords_x2)
crsGM <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
head(coords.GrossesMeer)
plot(coords.GrossesMeer)

NSDduemmer.spdf <- SpatialPointsDataFrame(coords = coords.Duemmer, data = duemmer, proj4string = CRS(crsD))

head(NSDduemmer.spdf)
class(NSDduemmer.spdf)
proj4string(NSDduemmer.spdf)
plot(NSDduemmer.spdf)


NSDgrossesMeer.spdf <- SpatialPointsDataFrame(coords = coords.GrossesMeer, data = GrossesMeer, proj4string = CRS(crsGM))

head(NSDgrossesMeer.spdf)
class(NSDgrossesMeer.spdf)
proj4string(NSDgrossesMeer.spdf)
plot(NSDgrossesMeer.spdf)
###################

Bis hierhin funktioniert es jetzt, danke für eure Tipps.
Jetzt habe ich den nächsten Teil rüber laufen lassen, es läuft bis zum Ende durch, aber dann das hier:

Code: Alles auswählen

Fehler: unerwartetes Symbol in: 
"str (nsdtest)
nsdplot <- xyplot (nsdall ~ zerostart/3600, data = datansd1, col = "grey", type = 'b', ylab = expression paste"
> plot (nsdplot)
Fehler in h(simpleError(msg, call)) : 
  Fehler bei der Auswertung des Argumentes 'x' bei der Methodenauswahl für Funktion 'plot': Objekt 'nsdplot' nicht gefunden
> dev.off()
null device 
          1 
> }
Fehler: Unerwartete(s) '}' in "}"

Und das bekomme ich als Aufstellung der Results:
 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
ID           0    0    0    0    0    0    0    0    0     0     0     0
AICC_1       0    0    0    0    0    0    0    0    0     0     0     0
d_AICC_1     0    0    0    0    0    0    0    0    0     0     0     0
LL_AICC_1    0    0    0    0    0    0    0    0    0     0     0     0
wi_AICC_1    0    0    0    0    0    0    0    0    0     0     0     0
ID           0    0    0    0    0    0    0    0    0     0     0     0
AICC_2       0    0    0    0    0    0    0    0    0     0     0     0
d_AICC_2     0    0    0    0    0    0    0    0    0     0     0     0
LL_AICC_2    0    0    0    0    0    0    0    0    0     0     0     0
wi_AICC_2    0    0    0    0    0    0    0    0    0     0     0     0
ID           0    0    0    0    0    0    0    0    0     0     0     0
AICC_3       0    0    0    0    0    0    0    0    0     0     0     0
d_AICC_3     0    0    0    0    0    0    0    0    0     0     0     0
LL_AICC_3    0    0    0    0    0    0    0    0    0     0     0     0
wi_AICC_3    0    0    0    0    0    0    0    0    0     0     0     0
ID           0    0    0    0    0    0    0    0    0     0     0     0
AICC_4       0    0    0    0    0    0    0    0    0     0     0     0
d_AICC_4     0    0    0    0    0    0    0    0    0     0     0     0
LL_AICC_4    0    0    0    0    0    0    0    0    0     0     0     0
wi_AICC_5    0    0    0    0    0    0    0    0    0     0     0     0
ID           0    0    0    0    0    0    0    0    0     0     0     0
AICC_5       0    0    0    0    0    0    0    0    0     0     0     0
d_AICC_5     0    0    0    0    0    0    0    0    0     0     0     0
LL_AICC_5    0    0    0    0    0    0    0    0    0     0     0     0
wi_AICC_5    0    0    0    0    0    0    0    0    0     0     0     0
          [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22]
ID            0     0     0     0     0     0     0     0     0     0
AICC_1        0     0     0     0     0     0     0     0     0     0
d_AICC_1      0     0     0     0     0     0     0     0     0     0
LL_AICC_1     0     0     0     0     0     0     0     0     0     0
wi_AICC_1     0     0     0     0     0     0     0     0     0     0
ID            0     0     0     0     0     0     0     0     0     0
AICC_2        0     0     0     0     0     0     0     0     0     0
d_AICC_2      0     0     0     0     0     0     0     0     0     0
LL_AICC_2     0     0     0     0     0     0     0     0     0     0
wi_AICC_2     0     0     0     0     0     0     0     0     0     0
ID            0     0     0     0     0     0     0     0     0     0
AICC_3        0     0     0     0     0     0     0     0     0     0
d_AICC_3      0     0     0     0     0     0     0     0     0     0
LL_AICC_3     0     0     0     0     0     0     0     0     0     0
wi_AICC_3     0     0     0     0     0     0     0     0     0     0
ID            0     0     0     0     0     0     0     0     0     0
AICC_4        0     0     0     0     0     0     0     0     0     0
d_AICC_4      0     0     0     0     0     0     0     0     0     0
LL_AICC_4     0     0     0     0     0     0     0     0     0     0
wi_AICC_5     0     0     0     0     0     0     0     0     0     0
ID            0     0     0     0     0     0     0     0     0     0
AICC_5        0     0     0     0     0     0     0     0     0     0
d_AICC_5      0     0     0     0     0     0     0     0     0     0
LL_AICC_5     0     0     0     0     0     0     0     0     0     0
wi_AICC_5     0     0     0     0     0     0     0     0     0     0
Irgendwo sitzt immer noch ein Fehler.
Antworten