Matrix aus Tabellenzeile erstellen

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

Moderatoren: EDi, jogo

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

Re: Matrix aus Tabellenzeile erstellen

Beitrag von jogo »

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: 24
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna »

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: 24
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna »

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: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Matrix aus Tabellenzeile erstellen

Beitrag von jogo »

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: 24
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna »

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: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Matrix aus Tabellenzeile erstellen

Beitrag von jogo »

Hallo Hanna,

aus welchem Paket stammt die Funktion betweenness() ?

Gruß, Jörg
Hanna
Beiträge: 24
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna »

Hallo Jörg,

das kommt aus sna.

Grüße Hanna
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Matrix aus Tabellenzeile erstellen

Beitrag von jogo »

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: 24
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna »

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: 24
Registriert: Mi Feb 20, 2019 5:00 pm

Re: Matrix aus Tabellenzeile erstellen

Beitrag von Hanna »

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