Matrix aus Tabellenzeile erstellen

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

jogo
Beiträge: 1254
Registriert: Fr Okt 07, 2016 8:25 am

Re: Matrix aus Tabellenzeile erstellen

Beitrag von jogo » Do Feb 21, 2019 1:15 pm

Code: Alles auswählen

daten <- read.table("http://forum.r-statistik.de/download/file.php?id=434", sep=",")
L <- lapply(split(daten, 1:nrow(daten)), matrix, nrow=3, byrow=TRUE)
L
Die Liste L enhält dann die gewünschten Matrizen.

Noch einige Anmerkungen zu Deiner Funktion:
1. n ist nicht definiert
2. Indizes beginnen in R mit 1 (nicht wie bei C mit 0)
3. Die for-Schleife beinhaltet das Inkrementieren der Laufvariablen per se ( i <- i+1 ist nicht notwendig)
4. Das Semikolon ist nur notwendig, um Kommandos voneinander zu trennen, die in der gleichen Zeile stehen.
5. Wenn kein explizites return(...) angegeben ist, wird der zuletzt berechnete Wert als Ergebnis der Funktion zurückgegeben :!:

Gruß, Jörg

Hanna
Beiträge: 19
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna » Do Feb 21, 2019 1:23 pm

Vielen, vielen Dank, Jörg!

ich muss erstmal aus meiner Java-Denke rauskommen.... bin zuversichtlich :D
Zuletzt geändert von Hanna am Do Feb 21, 2019 1:41 pm, insgesamt 1-mal geändert.

Hanna
Beiträge: 19
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna » Do Feb 21, 2019 1:39 pm

Nun habe ich aber wohl das falsche Format :(
> M <- L[2]
> betweenness(L[2], ignore.eval = FALSE, cmode = "directed")
Fehler in FUN(X[], ...) :
as.edgelist.sna input must be an adjacency matrix/array, edgelist matrix, network, or sparse matrix, or list thereof.

jogo
Beiträge: 1254
Registriert: Fr Okt 07, 2016 8:25 am

Re: Matrix aus Tabellenzeile erstellen

Beitrag von jogo » Do Feb 21, 2019 2:12 pm

Code: Alles auswählen

M <- L[[2]] # und vielleicht auch
betweenness(L[[2]], ...)
(siehe https://stackoverflow.com/questions/116 ... g-the-elem )

Es ist nicht empfehlenswert, die Elemente der Liste einzeln in Objekte zu packen :!: :!:
Vielleicht möchtest Du:

Code: Alles auswählen

lapply(L, FUN=betweenness, ignore.eval = FALSE, cmode = "directed")
Gruß, Jörg

Hanna
Beiträge: 19
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna » Do Feb 21, 2019 2:25 pm

Danke, ich bekomme jetzt spontan immer noch die gleiche Fehlermeldung; schaue mir das heute Abend bzw. morgen weiter an.

Grüße, Hanna

jogo
Beiträge: 1254
Registriert: Fr Okt 07, 2016 8:25 am

Re: Matrix aus Tabellenzeile erstellen

Beitrag von jogo » Do Feb 21, 2019 2:27 pm

Hallo Hanna,

aus welchem Paket stammt die Funktion betweenness() ?

Gruß, Jörg

Hanna
Beiträge: 19
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna » Do Feb 21, 2019 9:48 pm

Hallo Jörg,

das kommt aus sna.

Grüße Hanna

jogo
Beiträge: 1254
Registriert: Fr Okt 07, 2016 8:25 am

Re: Matrix aus Tabellenzeile erstellen

Beitrag von jogo » Do Feb 21, 2019 10:40 pm

Hallo Hanna,

also
https://www.rdocumentation.org/packages ... etweenness

Dort steht, dass der Parameter dat= soll sein ein Inputgraph sein (oder mehrere).
Sieh auch das Beispiel zur Funktion:

Code: Alles auswählen

example(betweenness)
Sind denn Deine Matrizen schon vom entsprechenden Typ oder müssen sie erst umgewandelt werden?

Nachtrag:
ich habe mir jetzt das Beispiel für die Funktion betweenness() angeschaut und bin der Meinung, alles zusammen könnte so aussehen:

Code: Alles auswählen

library("sna")

example("betweenness")
str(g)

daten <- read.table("http://forum.r-statistik.de/download/file.php?id=434", sep=",")
daten <- as.matrix(daten)
L <-lapply(1:nrow(daten), function(i) matrix(daten[i,], 3, byrow=TRUE))

lapply(L, FUN=betweenness, ignore.eval = FALSE, cmode = "directed")
Gruß, Jörg

Hanna
Beiträge: 19
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna » Fr Feb 22, 2019 11:51 am

Hallo Jörg,

genial - so wie ich es sehe, funktioniert es. Auch das Plotten mit gplot() geht :D

DANKE vielmals!

Sonnige Grüße und ein schönes Wochenende!

Hanna

Hanna
Beiträge: 19
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna » Sa Mär 30, 2019 3:52 pm

Guten Tag, liebe R-Kenner,

ich habe eine neue Herausforderung. Und zwar benötige ich nun ein igraph Objekt, um dort damit die "harmonic closeness" zu berechnen. Leider scheitere ich an der Erzeugung des Objektes. Meine Datenbasis ist noch die gleiche, die ich zum Download bereit gestellt habe. Ich probierte schon einiges, aber entweder passt es an sich nicht oder ich konnte die Daten nicht in double umwandeln (was laut Fehlermeldung aber gefordert ist).

Falls jemand Hilfe weiß, würde ich mich freuen!

Sonnige Grüße,

Hanna

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast