Klasse der eingelesenen Daten im txt Format falsch

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

Moderatoren: EDi, jogo

mula
Beiträge: 7
Registriert: Mi Jan 08, 2020 1:56 pm

Re: Klasse der eingelesenen Daten im txt Format falsch

Beitrag von mula »

Ich habe dieses Problem, denke ich jetzt gelöst. Der Fehler lag vermutlich in der ursprünglichen Excel Datei bei der Definition der Zelleninhalte.

Jetzt sieht das Ergebnis von str(grains_txt) so aus:

Code: Alles auswählen

'data.frame':	24 obs. of  80 variables:
 $ X0.058   : num  0 0 0 0 0 0 0 0 0 0 ...
 $ X0.067   : num  0 0 0 0 0 0 0 0 0 0 ...
 $ X0.076   : num  0 0 0 0 0.122 ...
 $ X0.087   : num  0 0 0 0 0.236 ...
 $ X0.1     : num  0 0 0 0 0.41 ...
 $ X0.115   : num  0 0 0 0 0.624 ...
 $ X0.131   : num  0 0 0 0.181 0.901 ...
 $ X0.15    : num  0 0 0 0.399 1.239 ...
 $ X0.172   : num  0 0 0 0.79 1.6 ...
 $ X0.197   : num  0 0 0 1.36 2.06 ...
 $ X0.226   : num  0 0.198 0 1.952 2.356 ...
 $ X0.259   : num  0 0.35 0 2.33 2.21 ...
 $ X0.296   : num  0 0.533 0 2.263 1.942 ...
 $ X0.339   : num  0 0.674 0 1.777 1.5 ...
 $ X0.389   : num  0 0.622 0.156 1.037 0.994 ...
 $ X0.445   : num  0 0.358 0.221 0.522 0.625 ...
 $ X0.51    : num  0 0.183 0.245 0.276 0.421 ...
 $ X0.584   : num  0 0 0.227 0.167 0.342 ...
 $ X0.669   : num  0 0 0.177 0.121 0.338 ...
 $ X0.766   : num  0.051 0 0.129 0.106 0.374 ...
 $ X0.877   : num  0.115 0 0 0.112 0.423 ...
 $ X1.005   : num  0.118 0 0 0.134 0.463 ...
 $ X1.151   : num  0.111 0 0 0.186 0.538 ...
 $ X1.318   : num  0.0515 0 0 0.2499 0.6458 ...
 $ X1.51    : num  0 0 0 0.314 0.752 ...
 $ X1.729   : num  0 0 0 0.37 0.862 ...
 $ X1.981   : num  0 0 0 0.423 0.961 ...
 $ X2.269   : num  0 0 0 0.469 1.045 ...
 $ X2.599   : num  0 0 0 0.501 1.085 ...
 $ X2.976   : num  0 0 0 0.516 1.1 ...
 $ X3.409   : num  0 0 0 0.518 1.148 ...
 $ X3.905   : num  0 0 0 0.514 1.193 ...
 $ X4.472   : num  0 0 0 0.508 1.225 ...
 $ X5.122   : num  0 0 0 0.509 1.259 ...
 $ X5.867   : num  0 0 0 0.522 1.297 ...
 $ X6.72    : num  0 0 0 0.554 1.333 ...
 $ X7.697   : num  0 0 0 0.599 1.377 ...
 $ X8.816   : num  0 0 0 0.658 1.426 ...
 $ X10.097  : num  0 0 0 0.725 1.43 ...
 $ X11.565  : num  0 0 0 0.791 1.331 ...
 $ X13.246  : num  0 0 0 0.856 1.216 ...
 $ X15.172  : num  0 0 0 0.905 1.097 ...
 $ X17.377  : num  0 0 0 0.92 1.03 ...
 $ X19.904  : num  0 0 0 0.889 0.884 ...
 $ X22.797  : num  0 0 0 0.816 0.766 ...
 $ X26.111  : num  0 0 0 0.713 0.645 ...
 $ X29.907  : num  0 0 0 0.598 0.528 ...
 $ X34.255  : num  0 0 0 0.486 0.437 ...
 $ X39.234  : num  0 0 0 0.392 0.354 ...
 $ X44.938  : num  0 0 0 0.332 0.303 ...
 $ X51.471  : num  0 0 0 0.299 0.279 ...
 $ X58.953  : num  0 0.116 0 0.293 0.284 ...
 $ X67.523  : num  0.136 0.171 0.119 0.319 0.301 ...
 $ X77.34   : num  0.236 0.261 0.198 0.353 0.342 ...
 $ X88.583  : num  0.443 0.44 0.36 0.433 0.416 ...
 $ X101.46  : num  0.885 0.81 0.7 0.632 0.532 ...
 $ X116.21  : num  1.768 1.524 1.365 1.02 0.543 ...
 $ X133.103 : num  3.5 2.946 2.679 1.846 0.883 ...
 $ X152.453 : num  6.3 5.3 4.89 3.28 1.74 ...
 $ X174.616 : num  9.72 8.35 7.85 5.3 3.21 ...
 $ X200     : num  12.63 11.23 10.83 7.42 4.89 ...
 $ X229.075 : num  13.88 12.89 12.82 8.9 6.71 ...
 $ X262.376 : num  13.17 12.78 13.12 9.25 8.11 ...
 $ X300.518 : num  11.07 11.23 11.9 8.6 8.24 ...
 $ X344.206 : num  8.58 9.1 9.86 7.26 6.56 ...
 $ X394.244 : num  6.28 6.95 7.66 5.68 4.39 ...
 $ X451.556 : num  4.35 5 5.52 4.06 2.92 ...
 $ X517.2   : num  2.81 3.34 3.67 2.62 1.65 ...
 $ X592.387 : num  1.767 2.14 2.355 1.593 0.882 ...
 $ X678.504 : num  1.096 1.343 1.487 0.941 0.49 ...
 $ X777.141 : num  0.609 0.746 0.93 0.523 0.161 ...
 $ X890.116 : num  0.338 0.415 0.517 0 0 ...
 $ X1019.515: num  0 0 0 0 0 ...
 $ X1167.725: num  0 0 0 0 0 ...
 $ X1337.481: num  0 0 0 0 0 ...
 $ X1531.914: num  0 0 0 0 0 ...
 $ X1754.613: num  0 0 0 0 0 0 0 0 0 0 ...
 $ X2009.687: num  0 0 0 0 0 0 0 0 0 0 ...
 $ X2301.841: num  0 0 0 0 0 0 0 0 0 0 ...
 $ X2500    : num  0 0 0 0 0 0 0 0 0 0 ...
Jetzt habe ich aber ein anderes Problem: Ich habe meinen dataframe in 3 dataframes unterteilt. "Maecht" ist ein dataframe, der später bei der erstellung der heatmap die y- Achse skalieren soll.

Code: Alles auswählen

grains_txt <- read.table("F:/Kanarenprojekt/Korngrößenanalyse/Lanzarote/Lanz_I/Korngrößen_P1.txt", dec=",",stringsAsFactors = FALSE)
Maecht <- read.csv("F:/Kanarenprojekt/Korngrößenanalyse/Lanzarote/Lanz_I/Maecht_P1.csv",header=TRUE, row.names=1, sep=";", dec = ".",stringsAsFactors = FALSE)

str(grains_txt)

grains_trans<- t(grains_txt)


grains_trans_T<- grains_trans[1:27,]
grains_trans_U<- grains_trans[28:52,]
grains_trans_S<- grains_trans[53:80,]

win.metafile(filename = "P1_Heatmap")

par(mfrow=c(1,13),
    mar=c(0.5, 0.5, 2, 0.5))

grains_T <-t(grains_trans_T)
grains_U <-t(grains_trans_U)
grains_S <-t(grains_trans_S)
diese drei Tabellen will ich dann einzeln zu heatmaps plotten. Das ist das Beispiel für die Tabelle garins_T:

Code: Alles auswählen

image.plot(c(0:ncol(grains_T)),c(Maecht$Maecht3),log(t(grains_T)), zlim= c(log(0.1), log(5)), col=blue2green2red(50), horizontal = TRUE, legend.width = 0.5, xaxt = "n", yaxt = "n", xlab = "", ylab = "")
ich bekomme dann aber folgende fehlermeldung:

Code: Alles auswählen

Error in plot.window(...) : endliche 'ylim' Werte nötig
In addition: Warning messages:
1: In min(x, na.rm = na.rm) :
  no non-missing arguments to min; returning Inf
2: In max(x, na.rm = na.rm) :
  no non-missing arguments to max; returning -Inf
3: In min(x, na.rm = na.rm) :
  no non-missing arguments to min; returning Inf
4: In max(x, na.rm = na.rm) :
  no non-missing arguments to max; returning -Inf
Auch dazu finde ich keine passende Lösung im Internet. Ich verstehe nicht mal, was diese Fehlermeldung bedeutet.
Danke schonmal für eventuelle Rückmeldungen!

P.S.: ich habe meinen Datensatz mal angehängt.
Dateianhänge
Maecht_P1.csv
(255 Bytes) 18-mal heruntergeladen
Korngrößen_P1.txt
(26.93 KiB) 17-mal heruntergeladen
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Klasse der eingelesenen Daten im txt Format falsch

Beitrag von bigben »

mula hat geschrieben: Do Jan 23, 2020 10:28 amJetzt sieht das Ergebnis von str(grains_txt) so aus:

Code: Alles auswählen

'data.frame':	24 obs. of  80 variables:
 $ X0.058   : num  0 0 0 0 0 0 0 0 0 0 ...
 $ X0.067   : num  0 0 0 0 0 0 0 0 0 0 ...
 $ X0.076   : num  0 0 0 0 0.122 ...
 $ X0.087   : num  0 0 0 0 0.236 ...
 $ X0.1     : num  0 0 0 0 0.41 ...
 $ X0.115   : num  0 0 0 0 0.624 ...
 $ X0.131   : num  0 0 0 0.181 0.901 ...
 $ X0.15    : num  0 0 0 0.399 1.239 ...
 $ X0.172   : num  0 0 0 0.79 1.6 ...
 $ X0.197   : num  0 0 0 1.36 2.06 ...
 $ X0.226   : num  0 0.198 0 1.952 2.356 ...
 $ X0.259   : num  0 0.35 0 2.33 2.21 ...
 $ X0.296   : num  0 0.533 0 2.263 1.942 ...
 $ X0.339   : num  0 0.674 0 1.777 1.5 ...
 $ X0.389   : num  0 0.622 0.156 1.037 0.994 ...
 $ X0.445   : num  0 0.358 0.221 0.522 0.625 ...
 $ X0.51    : num  0 0.183 0.245 0.276 0.421 ...
 $ X0.584   : num  0 0 0.227 0.167 0.342 ...
 $ X0.669   : num  0 0 0.177 0.121 0.338 ...
 $ X0.766   : num  0.051 0 0.129 0.106 0.374 ...
 $ X0.877   : num  0.115 0 0 0.112 0.423 ...
 $ X1.005   : num  0.118 0 0 0.134 0.463 ...
 $ X1.151   : num  0.111 0 0 0.186 0.538 ...
 $ X1.318   : num  0.0515 0 0 0.2499 0.6458 ...
 $ X1.51    : num  0 0 0 0.314 0.752 ...
 $ X1.729   : num  0 0 0 0.37 0.862 ...
 $ X1.981   : num  0 0 0 0.423 0.961 ...
 $ X2.269   : num  0 0 0 0.469 1.045 ...
 $ X2.599   : num  0 0 0 0.501 1.085 ...
 $ X2.976   : num  0 0 0 0.516 1.1 ...
 $ X3.409   : num  0 0 0 0.518 1.148 ...
 $ X3.905   : num  0 0 0 0.514 1.193 ...
 $ X4.472   : num  0 0 0 0.508 1.225 ...
 $ X5.122   : num  0 0 0 0.509 1.259 ...
 $ X5.867   : num  0 0 0 0.522 1.297 ...
 $ X6.72    : num  0 0 0 0.554 1.333 ...
 $ X7.697   : num  0 0 0 0.599 1.377 ...
 $ X8.816   : num  0 0 0 0.658 1.426 ...
 $ X10.097  : num  0 0 0 0.725 1.43 ...
 $ X11.565  : num  0 0 0 0.791 1.331 ...
 $ X13.246  : num  0 0 0 0.856 1.216 ...
 $ X15.172  : num  0 0 0 0.905 1.097 ...
 $ X17.377  : num  0 0 0 0.92 1.03 ...
 $ X19.904  : num  0 0 0 0.889 0.884 ...
 $ X22.797  : num  0 0 0 0.816 0.766 ...
 $ X26.111  : num  0 0 0 0.713 0.645 ...
 $ X29.907  : num  0 0 0 0.598 0.528 ...
 $ X34.255  : num  0 0 0 0.486 0.437 ...
 $ X39.234  : num  0 0 0 0.392 0.354 ...
 $ X44.938  : num  0 0 0 0.332 0.303 ...
 $ X51.471  : num  0 0 0 0.299 0.279 ...
 $ X58.953  : num  0 0.116 0 0.293 0.284 ...
 $ X67.523  : num  0.136 0.171 0.119 0.319 0.301 ...
 $ X77.34   : num  0.236 0.261 0.198 0.353 0.342 ...
 $ X88.583  : num  0.443 0.44 0.36 0.433 0.416 ...
 $ X101.46  : num  0.885 0.81 0.7 0.632 0.532 ...
 $ X116.21  : num  1.768 1.524 1.365 1.02 0.543 ...
 $ X133.103 : num  3.5 2.946 2.679 1.846 0.883 ...
 $ X152.453 : num  6.3 5.3 4.89 3.28 1.74 ...
 $ X174.616 : num  9.72 8.35 7.85 5.3 3.21 ...
 $ X200     : num  12.63 11.23 10.83 7.42 4.89 ...
 $ X229.075 : num  13.88 12.89 12.82 8.9 6.71 ...
 $ X262.376 : num  13.17 12.78 13.12 9.25 8.11 ...
 $ X300.518 : num  11.07 11.23 11.9 8.6 8.24 ...
 $ X344.206 : num  8.58 9.1 9.86 7.26 6.56 ...
 $ X394.244 : num  6.28 6.95 7.66 5.68 4.39 ...
 $ X451.556 : num  4.35 5 5.52 4.06 2.92 ...
 $ X517.2   : num  2.81 3.34 3.67 2.62 1.65 ...
 $ X592.387 : num  1.767 2.14 2.355 1.593 0.882 ...
 $ X678.504 : num  1.096 1.343 1.487 0.941 0.49 ...
 $ X777.141 : num  0.609 0.746 0.93 0.523 0.161 ...
 $ X890.116 : num  0.338 0.415 0.517 0 0 ...
 $ X1019.515: num  0 0 0 0 0 ...
 $ X1167.725: num  0 0 0 0 0 ...
 $ X1337.481: num  0 0 0 0 0 ...
 $ X1531.914: num  0 0 0 0 0 ...
 $ X1754.613: num  0 0 0 0 0 0 0 0 0 0 ...
 $ X2009.687: num  0 0 0 0 0 0 0 0 0 0 ...
 $ X2301.841: num  0 0 0 0 0 0 0 0 0 0 ...
 $ X2500    : num  0 0 0 0 0 0 0 0 0 0 ...
Darf ich da nochmal einhaken? Bist Du sicher, dass die Spalten so heißen oder kann es sein, dass die Zahlenwerte in der ersten Reihe falsch als Spaltenüberschriften eingelesen wurden? Willst Du wirklich eine Spalte haben, die X0.058 heißt, oder hätte 0,058 mit als Wert in die erste Spalte rutschen sollen? Jörg hatte darauf in seinem letzten Beitrag verwiesen aber ich möchte sicher stellen, dass Du das gelesen und verstanden und berücksichtigt hast. Der Schritt sollte unbedingt stimmen, bevor Du weiter machst. Also kontrolliere nochmal, ob Du 25 oder 24 Zeilen in Deinem Eingangsdatensatz hast.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Klasse der eingelesenen Daten im txt Format falsch

Beitrag von jogo »

Hallo Bernhard,

ich habe mir die Datei mit einem Editor angeschaut. header=TRUE scheint die richtige Wahl zu sein. Die Kopfzeile enthält Bereichsangaben für irgendeinen anderen Wert.

Gruß, Jörg
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Klasse der eingelesenen Daten im txt Format falsch

Beitrag von jogo »

Hallo mula,

darf ich etwas Kosmetik empfehlen?

Code: Alles auswählen

setwd("F:/Kanarenprojekt/Korngrößenanalyse/Lanzarote/Lanz_I")

grains_txt <- read.table("Korngrößen_P1.txt", dec=",", stringsAsFactors = FALSE)
Maecht <- read.csv("Maecht_P1.csv", row.names=1, sep=";", dec = ".", stringsAsFactors = FALSE)
...
Gruß, Jörg
Antworten