Seite 2 von 4

Re: Matrix aus Tabellenzeile erstellen

Verfasst: Do Feb 21, 2019 1:15 pm
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

Re: Matrix aus Tabellenzeile erstellen

Verfasst: Do Feb 21, 2019 1:23 pm
von Hanna
Vielen, vielen Dank, Jörg!

ich muss erstmal aus meiner Java-Denke rauskommen.... bin zuversichtlich :D

Re: Matrix aus Tabellenzeile erstellen

Verfasst: Do Feb 21, 2019 1:39 pm
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.

Re: Matrix aus Tabellenzeile erstellen

Verfasst: Do Feb 21, 2019 2:12 pm
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

Re: Matrix aus Tabellenzeile erstellen

Verfasst: Do Feb 21, 2019 2:25 pm
von Hanna
Danke, ich bekomme jetzt spontan immer noch die gleiche Fehlermeldung; schaue mir das heute Abend bzw. morgen weiter an.

Grüße, Hanna

Re: Matrix aus Tabellenzeile erstellen

Verfasst: Do Feb 21, 2019 2:27 pm
von jogo
Hallo Hanna,

aus welchem Paket stammt die Funktion betweenness() ?

Gruß, Jörg

Re: Matrix aus Tabellenzeile erstellen

Verfasst: Do Feb 21, 2019 9:48 pm
von Hanna
Hallo Jörg,

das kommt aus sna.

Grüße Hanna

Re: Matrix aus Tabellenzeile erstellen

Verfasst: Do Feb 21, 2019 10:40 pm
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

Re: Matrix aus Tabellenzeile erstellen

Verfasst: Fr Feb 22, 2019 11:51 am
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

Re: Matrix aus Tabellenzeile erstellen

Verfasst: Sa Mär 30, 2019 3:52 pm
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