Addition zweier Punkte aus einem Datensatz in R

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
Statist98

Addition zweier Punkte aus einem Datensatz in R

Beitrag von Statist98 »

.
Zuletzt geändert von Statist98 am Di Apr 25, 2023 2:28 pm, insgesamt 1-mal geändert.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Addition zweier Punkte aus einem Datensatz in R

Beitrag von bigben »

Hi!

Sagen wir, Dein Datensatz ist eine 5x5 Matrix wie diese:

Code: Alles auswählen

M <- matrix(sample.int(10, 25, 1), ncol = 5)
print(M)
#>      [,1] [,2] [,3] [,4] [,5]
#> [1,]    7    1    5    1    9
#> [2,]    1    4    1   10    3
#> [3,]    3   10    7   10   10
#> [4,]   10    8    2    5    8
#> [5,]    2    5    1    1    4
Und Du möchtest jetzt den Datenpunkt an der Stelle (2|2) mit dem an der Stelle (5|5) addieren, dann geht das zum Beispiel so:

Code: Alles auswählen

# Addiere Punkt (2,2) mit (5,5)
M[2,2] + M[5,5]
#> [1] 8
Wenn Deine Datenpunkte jetzt irgendwie anders in Deinem Datensatz vorliegen, dann solltest du uns beschreiben, wie Dein Datensatz aufgebaut ist und was Du mit was addieren möchtest. Am besten wäre ein kleines Datenbeispiel in Form von ausführbarem R-Code und eine Auflösung, was bei diesem Datenbeispiel herauskommen soll.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Statist98

Re: Addition zweier Punkte aus einem Datensatz in R

Beitrag von Statist98 »

.
Zuletzt geändert von Statist98 am Di Apr 25, 2023 2:28 pm, insgesamt 1-mal geändert.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Addition zweier Punkte aus einem Datensatz in R

Beitrag von bigben »

Hallo,

meinst Du sowas wie

Code: Alles auswählen

summe <- DATA$B365H + DATA$BWH + DATA$IWH
head(summe, 10)
oder alternativ vielleicht etwas übersichtlicher:

Code: Alles auswählen

spalten <- c("B365H", "BWH", "IWH")
summe <- rowSums(DATA[, spalten])
head(summe, 10)
?

Ja, das ginge auch in einer Schleife, ich würde es aber eher so wie oben und ohne Schleife umsetzen. Wenn Du eine Schleife brauchst, sag gerne bescheid. Für die Zukunft: Hör' bitte auf, Daten als Bildschirmfoto zu schicken, das hilft im Allgemeinen wenig. Du könntest zum Beispiel die ersten zehn Zeilen Deines Datensatzes so mit uns teilen:

Code: Alles auswählen

dput( head(DATA, 10) )
Wenn Du das, was R da ausspuckt einfach per copy und paste ins Forum stellst sieht das vielleicht nicht so hübsch aus, ist aber tatsächlich viel hilfreicher.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Statist98

Re: Addition zweier Punkte aus einem Datensatz in R

Beitrag von Statist98 »

.
Zuletzt geändert von Statist98 am Di Apr 25, 2023 2:28 pm, insgesamt 1-mal geändert.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Addition zweier Punkte aus einem Datensatz in R

Beitrag von bigben »

Hallo Statist!

Die Variante mit rowSums erzeugt einen kurzen Code der zudem gut verständlich ist. Weil der Code kurz ist sind Fehler leicht zu finden bzw auszuschließen und wenn man rowSums liest weiß man sofort, dass hier reihenweise Summen gebildet werden. Und wenn der Datensatz sehr groß wird, dann ist rowSums schneller als eine Schleife.
Es spricht vieles gegen die Schleife. Es sei denn, das wäre eine Hausaufgabe und der Lehrer besteht darauf. Ist das das Problem?

LG, Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Statist98

Re: Addition zweier Punkte aus einem Datensatz in R

Beitrag von Statist98 »

.
Zuletzt geändert von Statist98 am Di Apr 25, 2023 2:29 pm, insgesamt 1-mal geändert.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Addition zweier Punkte aus einem Datensatz in R

Beitrag von bigben »

Hi,

Ich habe gerade keinen Rechner da, zum Ausprobieren.

Du solltest in

Code: Alles auswählen

spalten <- c("B365H", "BWH", "IWH")
summe <- rowSums(DATA[, spalten])
head(summe, 10) 
Einfach ersetzen können

Code: Alles auswählen

spalten <- c(1, 4, 7)
LG, Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten