Hallo,
ich möchte in R eine Korrelationsmatrix aus Excel einlesen, die ich in eine CSV-Datei umgewandelt habe und diese Daten dann in eine Matrix in R umwandeln.
Ich gebe dazu ein:
y <- read.csv("Irrelevanter Dateiname",FALSE,sep = ";",dec = ",")
rho <- matrix(y,10,10,dimnames=list(firmnames,firmnames),byrow=TRUE)
Wenn ich dann rho aufrufe erhalte ich:
> rho
1 2 3 4 5 6
1 factor,10 factor,10 factor,10 factor,10 factor,10 factor,10
2 factor,10 factor,10 factor,10 factor,10 factor,10 factor,10
3 factor,10 factor,10 factor,10 factor,10 factor,10 factor,10
4 factor,10 factor,10 factor,10 factor,10 factor,10 factor,10
5 factor,10 factor,10 factor,10 factor,10 factor,10 factor,10
6 factor,10 factor,10 factor,10 factor,10 factor,10 factor,10
7 factor,10 factor,10 factor,10 factor,10 factor,10 factor,10
8 factor,10 factor,10 factor,10 factor,10 factor,10 factor,10
9 factor,10 factor,10 factor,10 factor,10 factor,10 factor,10
10 factor,10 factor,10 factor,10 factor,10 factor,10 factor,10
7 8 9 10
1 factor,10 factor,10 factor,10 factor,10
2 factor,10 factor,10 factor,10 factor,10
3 factor,10 factor,10 factor,10 factor,10
4 factor,10 factor,10 factor,10 factor,10
5 factor,10 factor,10 factor,10 factor,10
6 factor,10 factor,10 factor,10 factor,10
7 factor,10 factor,10 factor,10 factor,10
8 factor,10 factor,10 factor,10 factor,10
9 factor,10 factor,10 factor,10 factor,10
10 factor,10 factor,10 factor,10 factor,10
Eigentlich sollte das Ganze aber so aussehen:
1 2 3 4 5 6 7 8 9 10
1 1.000 0.021 0.129 0.075 0.150 0.187 0.007 0.104 0.018 0.199
2 0.021 1.000 0.069 0.040 0.080 0.101 0.004 0.056 0.010 0.107
3 0.129 0.069 1.000 0.243 0.487 0.608 0.022 0.336 0.059 0.647
4 0.075 0.040 0.243 1.000 0.282 0.353 0.013 0.195 0.034 0.375
5 0.150 0.080 0.487 0.282 1.000 0.706 0.026 0.390 0.069 0.751
6 0.187 0.101 0.608 0.353 0.706 1.000 0.032 0.488 0.086 0.939
7 0.007 0.004 0.022 0.013 0.026 0.032 1.000 0.018 0.003 0.034
8 0.104 0.056 0.336 0.195 0.390 0.488 0.018 1.000 0.047 0.519
9 0.018 0.010 0.059 0.034 0.069 0.086 0.003 0.047 1.000 0.091
10 0.199 0.107 0.647 0.375 0.751 0.939 0.034 0.519 0.091 1.000
(hierfür habe ich die CSV Datei im Editor geöffnet und über copy & paste in die Funktion eingefügt. Da ich später mit einer riesigen Korrelationsmatrix mit mehreren Millionen Werten arbeiten möchte macht dieser Weg keinen Sinn)
Weiß jemand wo mein Problem liegt?
Probleme bei Umwandlung von CSV in Matrix
Re: Probleme bei Umwandlung von CSV in Matrix
Weiß jemand wo mein Problem liegt?
Code: Alles auswählen
x <- read.table(header = TRUE, text = 'header1 header2
"non-numeric" "non-numeric"
"non-numeric" "non-numeric"')
matrix(x, 2, 2)
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Re: Probleme bei Umwandlung von CSV in Matrix
Oder einfach read.csv2()?
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube
Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube
Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Re: Probleme bei Umwandlung von CSV in Matrix
Erst mal Danke für die schnellen Antworten!
Soll heißen, dass R die eingelesenen Daten als non-numeric sieht, obwohl die CSV-Datei die reinen Daten ohne Spalten- und Zeilenbeschriftungen - also nur Zahlen - enthält? Wie kann ich das beheben?EDi hat geschrieben: ↑Di Jun 26, 2018 10:09 pmWeiß jemand wo mein Problem liegt?Code: Alles auswählen
x <- read.table(header = TRUE, text = 'header1 header2 "non-numeric" "non-numeric" "non-numeric" "non-numeric"') matrix(x, 2, 2)
Ändert am Output leider nichts
Re: Probleme bei Umwandlung von CSV in Matrix
Hallo Faust,
wenn Du konkrete Hilfe möchtest, musst Du uns auch konkrete Daten liefern, also z.B. die ersten 10 Zeilen Deiner Datei.
Genau dies hatte Edi bereits angemahnt.
Gruß, Jörg
wenn Du konkrete Hilfe möchtest, musst Du uns auch konkrete Daten liefern, also z.B. die ersten 10 Zeilen Deiner Datei.
Genau dies hatte Edi bereits angemahnt.
Gruß, Jörg
Re: Probleme bei Umwandlung von CSV in Matrix
Hallo!
LG,
Bernhard
Das kannst Du ganz einfach verifizieren oder widerlegen mitdass R die eingelesenen Daten als non-numeric sieht
Code: Alles auswählen
str(y)
Da täuscht man sich häufig. Es reicht, dass ein einziger Wert einen Punkt anstelle eines Kommas enthält oder irgendwo einer ein O statt einer 0 getippt hat oder ein "/" anstelle von "NA" geschrieben hat, und schon ist die ganze Spalte non-numeric. Da solltest Du in die Rohdaten nochmal mit dem Editor schauen, und wenn Du dann nichts findest, wird es Zeit für ein reproduzierbares Beispiel.obwohl die CSV-Datei die reinen Daten ohne Spalten- und Zeilenbeschriftungen - also nur Zahlen - enthält
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Probleme bei Umwandlung von CSV in Matrix
Das soll heißen, dass ich mit diesem Beispiel genau das von dir beschrieben Verhalten reproduzieren kann.Soll heißen, dass R die eingelesenen Daten als non-numeric sieht, obwohl die CSV-Datei die reinen Daten ohne Spalten- und Zeilenbeschriftungen - also nur Zahlen - enthält?
Es kann also sein, dass dies bei der Fall ist. Genau sagen kann ich das aber nicht, da du kein reproduzierbares Beispiel deiner Frage angehängt hast.
str(), unique(), table() sind gute Hilfen. Was genau dein "Irrelevanter Dateiname" benötigt kann ich natürlich nicht sagen.Wie kann ich das beheben?
Wenn die Daten aus Excel kommen, würde ich auch direkt das xls(x) einlesen (z.b. mit readxl).
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.