Gewichteter Mittelwert

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

Moderatoren: EDi, jogo

Antworten
Hadsga
Beiträge: 21
Registriert: Di Aug 01, 2017 2:09 pm

Gewichteter Mittelwert

Beitrag von Hadsga »

Hallo R-Forum,

ich habe folgendes Problem:

Ich habe in meinem data frame den Mittelwert einer Varibale berechnet:

Code: Alles auswählen

A tibble: 606 x 2
            categories avg_stars
                 <chr>     <dbl>
 1          Acai Bowls  4.115385
 2         Accessories  3.833333
 3         Accountants  2.000000
 4         Active Life  3.545198
 5         Acupuncture  4.250000
 6               Adult  4.000000
 7     Adult Education  4.375000
 8 Adult Entertainment  2.972222
 9         Advertising  5.000000
10              Afghan  3.793750
Das Problem ist, dass sich die Fallzahlen der Varibale unterscheiden:

Code: Alles auswählen

# A tibble: 606 x 2
            categories     n
                 <chr> <int>
 1          Acai Bowls    13
 2         Accessories     3
 3         Accountants     1
 4         Active Life   177
 5         Acupuncture     2
 6               Adult     1
 7     Adult Education     4
 8 Adult Entertainment    18
 9         Advertising     1
10              Afghan    80
Dies würde ich gerne bei der Berchnung berücksichtigen. Mit folgendem Code habe ich es versucht:

Code: Alles auswählen


yelp_tbl %>% filter(str_detect(categories, "Restaurant")) %>% unnest(categories) %>% select(categories, stars) %>% filter(categories != "Restaurants") %>% count(categories) %>% group_by(categories) %>% summarise(avg_stars = mean(stars ,n ))

Ich bekomme dann aber folgende Fehlermeldung:

Code: Alles auswählen


# A tibble: 606 x 2
            categories avg_stars
                 <chr>     <dbl>
 1          Acai Bowls        NA
 2         Accessories        NA
 3         Accountants        NA
 4         Active Life        NA
 5         Acupuncture        NA
 6               Adult        NA
 7     Adult Education        NA
 8 Adult Entertainment        NA
 9         Advertising        NA
10              Afghan        NA
# ... with 596 more rows
There were 50 or more warnings (use warnings() to see the first 50)

In mean.default(stars, n)

Hat jemand eine Ahnung wie man das macht?
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Gewichteter Mittelwert

Beitrag von bigben »

Wenn mean auf NA trifft, dann ergibt es normalerweise NA. Das kann man abschalten. Lies mal unter help (mean), welche Argumente es da gibt.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Gewichteter Mittelwert

Beitrag von EDi »

Vermutlich hilft dir auch ?weighted.mean .
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.
Hadsga
Beiträge: 21
Registriert: Di Aug 01, 2017 2:09 pm

Re: Gewichteter Mittelwert

Beitrag von Hadsga »

Hi,

danke für die Antworten.
Es sind keine NA´s in dem Datensatz enthalten. Die Heplfunktion habe ich schon durchgeschaut. In meiner Fromel habe ich ja versucht "n" als Vektor einzusetzten.
Antworten