xtabs() und NAs

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

Moderatoren: EDi, jogo

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

xtabs() und NAs

Beitrag von jogo » Fr Aug 16, 2019 2:16 pm

Hallo,

kann man die Funktion xtabs() so parametrisieren, dass sie NAs im Ergebnis liefert?
Hier produziert xtabs() Nullen:

Code: Alles auswählen

df <- read.table(header=TRUE, dec=",", text=
"MolPerc			Name		Sample_Name
0,723117947750453	12:0		S1_and_pk_veg_1
0,046089710969517	12:0		S3_and_pk_veg_3
4,664022769640830	12:0		S19_lux_pk_veg_1
0,792319980905775	12:0		S20_lux_pk_veg_2
0,100690400314121	12:0		S21_lux_pk_veg_3
1,95202073928723	12:0		S22_lux_con_1
1,20986882371796	12:0		S26_eme_pk_veg_1
0,015568792253626	12:0		S39_hol_pk_gra_3
5,34343671539878	14:0		S2_and_pk_veg_2
1,51185521037698	14:0		S3_and_pk_veg_3
1,35878506814433	14:0		S5_and_pk_grz_2 
1,76210006075600	14:0		S13_and_pk_gra_2
1,82794586686593	14:0		S16_and_con_2
12,0743415293854	14:0		S19_lux_pk_veg_1
14,7363511213337	14:0		S20_lux_pk_veg_2
0,83263403772498	14:0		S21_lux_pk_veg_3
4,73522889279343	14:0		S22_lux_con_1
4,72836058510026	14:0		S23_lux_con_2
7,46591217346962	14:0		S25_lux_con_3
1,01126841130609	14:0		S28_eme_pk_veg_3
0,31756894204574	14:0		S29_eme_con_1
8,18829604882864	14:0		S31_eme_con_2
11,6309532486909	14:0		S32_eme_con_3
4,26023160565549	14:0		S33_hol_pk_veg_1
3,86034759755138	14:0		S34_hol_pk_veg_2
4,54779361187967	14:0		S35_hol_pk_veg_3
26,8266683027117	16:0		S1_and_pk_veg_1
14,6555021267382	16:0		S2_and_pk_veg_2
15,8949628089649	16:0		S3_and_pk_veg_3
17,5404923990519	16:0		S4_and_pk_grz_1 
17,6990270056518	16:0		S5_and_pk_grz_2")

xtabs(MolPerc ~ Sample_Name + Name, data=df)
Gewünscht sind NAs wie bei reshape():

Code: Alles auswählen

reshape(df, idvar = "Sample_Name", timevar = "Name", direction = "wide")
Gruß, Jörg

Benutzeravatar
EDi
Beiträge: 845
Registriert: Sa Okt 08, 2016 3:39 pm

Re: xtabs() und NAs

Beitrag von EDi » Fr Aug 16, 2019 4:01 pm

taugt dir das was?

Code: Alles auswählen

tidyr::spread(df, Name, MolPerc)
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
Bild.

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

Re: xtabs() und NAs

Beitrag von jogo » Fr Aug 16, 2019 4:11 pm

Danke, Edi.
Das kenne ich schon, siehe: viewtopic.php?f=7&t=1747&p=8408#p8397

Mich interessiert, ob auch xtabs() die NAs erzeugen kann.
Aber vielleicht hat es xtabs() auch nicht so mit NAs.

Gruß, Jörg

Athomas
Beiträge: 210
Registriert: Mo Feb 26, 2018 8:19 pm

Re: xtabs() und NAs

Beitrag von Athomas » Fr Aug 16, 2019 6:55 pm

Die Probleme werden ja immer härter!

Meiner Meinung nach tut xtabs() genau das, wozu es gedacht ist: die Berechnung von Kontingenztabellen!
Netterweise akzeptiert es auf der linken Seite auch "einen Vektor von Zählungen", die dann in der Kontingenztabelle verwurstelt werden.

Wenn der Gemüsehändler eine Tabelle erstellt, in der er die Gemüseverkäufe der Woche nach Gemüseart darstellen will, und er am Donnerstag keinen Rosenkohl verkauft hat, will er da eine Null sehen - und nicht NA :lol: !
Wer nichts weiß, muss alles glauben. (Marie von Ebner-Eschenbach)

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

Re: xtabs() und NAs

Beitrag von jogo » Fr Aug 16, 2019 7:19 pm

Hallo Athomas,

das wird ja immer besser.
Jetzt lieferst Du sogar schon eine Antwort auf eine noch nicht gestellte Frage. :o
... tolle Erklärung :!: 8-)

Nachtrag:
Ich lach mich gerade kaputt (ja, ich weiß: Treppenwitz und so), wenn ich mir vorstelle, wie der Gemüsehändler am Ender der Woche seine Verkaufszahlen in R einliest und dann xtabs() über den Dataframe jagt.
Jetzt mal im Ernst: Kann das bedeuten, dass einige Funktionen von Buchhaltern und andere von Informatikern eingebracht wurden. Bei so einem bunten Mix wie R soll man nicht für ausgeschlossen halten.

Gruß, Jörg

Athomas
Beiträge: 210
Registriert: Mo Feb 26, 2018 8:19 pm

Re: xtabs() und NAs

Beitrag von Athomas » Sa Aug 17, 2019 11:43 am

Jetzt mal im Ernst: Kann das bedeuten, dass einige Funktionen von Buchhaltern und andere von Informatikern eingebracht wurden.
Ich weiss nicht, ob es in der Szene nochmal so etwas Heterogenes wie die R-Anwenderschaft gibt: Geologen, Linguisten, Züchologen, Mediziner ...

Im konkreten Fall scheint mit aber das Problem zu sein, dass man mit xtabs reshape-ähnliche Funktionen ausführen möchte - wofür es nicht gedacht ist!

Um noch ein wenig bei den blumigen Beispielen zu verweilen: ich gehe ja auch nicht zum Obi, kaufe dort einen Schraubendreher, und beschwere mich anschließend, dass man damit die Nägel so schlecht in die Wand hauen kann :lol: !
Wer nichts weiß, muss alles glauben. (Marie von Ebner-Eschenbach)

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

Re: xtabs() und NAs

Beitrag von jogo » Sa Aug 17, 2019 4:44 pm

genau, aufgrund der Ähnlichkeit in der Funktionalität hatte ich mich gefragt, ob ich einfach nur zu blöd bin, xtabs() geeignet zu parametrisieren.

Gruß, Jörg

bigben
Beiträge: 954
Registriert: Mi Okt 12, 2016 9:09 am

Re: xtabs() und NAs

Beitrag von bigben » Mo Aug 19, 2019 8:49 am

@Athomas
Athomas hat geschrieben:
Sa Aug 17, 2019 11:43 am
Geologen, Linguisten, Züchologen, Mediziner ...
Ist das als Aufzählung sortiert nach absteigender Wissenschaftlichkeit gedacht?

@jogo
dass einige Funktionen von Buchhaltern und andere von Informatikern eingebracht wurden.
Wenn die Milch alle ist, sagt der Informatiker dann wirklich "Schatz, wir haben nur noch eine nicht verfügbare Zahl von Milchtüten?"
Schlimmstenfalls könnte so ein Informatiker ja auch jede Null durch ein NA ersetzen. Ich seh da vier Möglichkeiten
  • "Ist'n Einzeiler"
  • tidy_solutions::replace_zero_by_na() (muss man von bioconductor installieren; Vorteil: macht aus jeder Datenstruktur ungefragt ein Tibble)
  • wenn es auf Geschwindigkeit ankommt mit RCpp. Gelegentliche segfaults, memory leaks, unerklärliche Abstürze immer denkbar. Multithreading in C++ ist halt nichts für Weicheier sondern nur für echte Ingenieure.
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

Athomas
Beiträge: 210
Registriert: Mo Feb 26, 2018 8:19 pm

Re: xtabs() und NAs

Beitrag von Athomas » Mo Aug 19, 2019 9:18 am

bigben hat geschrieben:
Mo Aug 19, 2019 8:49 am
@Athomas
Athomas hat geschrieben:
Sa Aug 17, 2019 11:43 am
Geologen, Linguisten, Züchologen, Mediziner ...
Ist das als Aufzählung sortiert nach absteigender Wissenschaftlichkeit gedacht?
Ohne meinen Anwalt sach ich gar nix :twisted: !
Wer nichts weiß, muss alles glauben. (Marie von Ebner-Eschenbach)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast