Próbuję zobaczyć relacje między szczęściem a mnóstwem innych zmiennych, na przykład, wiek lub płeć lub stan cywilny, przy użyciu ggplot(). Mam ten zestaw danych

https://xdaiisu.github.io/ds202Materials/hwlabs/happy.rds.

library(ggplot2)

HAPPY[HAPPY == "IAP"] <- NA
HAPPY[HAPPY == "DK"] <- NA
HAPPY[HAPPY == "NA"] <- NA

Pobrałem ten zestaw danych, a ja przekształciłem niektóre zmienne na "czynniki" za pomocą tego kodu, będę używał małżeństwa i szczęśliwego jako przykładu;

HAPPY <- HAPPY %>% mutate(MARITAL = factor(MARITAL, 
                                           levels = c("NEVER MARRIED", "MARRIED", "SEPARATED", "DIVORCED", "WIDOWED"))) 
               %>% arrange(desc(MARITAL))

HAPPY <- HAPPY %>% mutate(HAPPY= factor(HAPPY, 
                                        levels = c("NOT TOO HAPPY", "PRETTY HAPPY", "VERY HAPPY"))) 
               %>% arrange(desc(HAPPY))

Teraz chcę użyć wykresu ggplot2, aby pokazać związek między małżeńskim a szczęściem (oznaczony przez kolumnę szczęśliwy). Jestem stosunkowo nowy do ggplot2, więc staram się wymyślić sposoby korzystania z niego. Ponadto, jeśli nie chcesz robić szczęśliwego vs małżeńskiego, możesz użyć dowolnej zmiennej lub kolumny, aby porównać ze szczęśliwą, a ty, który chcesz po prostu uzyskać błędy.

Dzięki!

0
Sam Cole 28 luty 2019, 07:31

2 odpowiedzi

Najlepsza odpowiedź

Następujący kod powinien się rozpocząć.

#Loading Libraries
library(ggplot2)
library(dplyr)
library(ggthemes)
#reading data
df <- readRDS("HAPPY.rds")
df<- na.omit(df) #deleting NA's

#converting class of categorical columns from  character to factors 
df[sapply(df, is.character)] <- lapply(df[sapply(df, is.character)],as.factor)
df$AGE<- as.numeric(df$AGE)
#Grouping through dplyr and plotting through ggplot2
df %>% 
  group_by(HAPPY,SEX) %>%
  summarise(mean_age=mean(AGE))%>%
  ggplot(aes(x=HAPPY,y=mean_age,fill=SEX))+
  geom_bar( stat="identity",position = position_dodge())+
  labs(x="Happiness", y="Average Age")+
  theme_gdocs()+
  geom_text(aes(label=paste(round(mean_age,0)) ), vjust=0,position = position_dodge(0.9))+
  scale_fill_manual( values=c( "deeppink","mediumturquoise"))

Działka wyjściowa

0
Ashirr K Kashyap 28 luty 2019, 08:37

Punktem wyjścia może być po prostu wizualizowanie liczby obserwacji, np.: ggplot(HAPPY, aes(x = HAPPY, y = MARITAL)) + geom_count().

Możesz także spróbować Geom_bin2D: https://ggplOT2.tidyverse.org/refference/geom_bin2d.html .

1
Wolfgang Arnold 28 luty 2019, 08:06