Как я могу создать график с данными, расположенными в одном столбце таблицы с R? - PullRequest
0 голосов
/ 30 января 2019

Я хотел бы извлечь информацию из таблицы CSV, содержащей ответы на опрос.Цель состоит в том, чтобы создать неофициальные графики для моего блестящего приложения, чтобы показать результаты опроса.

Чтобы упростить процесс, сначала я хочу создать графики в стандартном R-файле.Поскольку ответы на один вопрос все находятся в одном столбце, я думаю, что мне нужно сначала разделить разные ответы перед построением графика.

Вот как выглядит импортированная таблица:

https://drive.google.com/file/d/1yfdMF0gZQKFbMFOChN8lEXzl1KxLsGBp/view?usp=sharing

В качестве первого графика я хотел бы создать круговую диаграмму с информацией из столбца с вопросом «как вы попали на мероприятие?».Ответы будут на машине, на велосипеде, на поезде / автобусе, на мотоцикле, пешком или на автобусе.

С кратким изложением (u18) я обнаружил, что в столбце "Verkehrsmittel" (= средство передвижения)можно найти следующее количество ответов:

Verkehrsmittel

Авто: 15 (= автомобиль)

Фарра: 17 (= велосипед)

Öffentliche Verkehrsmittel:252 (= поезд / автобус)

Zu Fuss: 6 (= ногами)

Reisebus: 1 (= автобус)

Motorrad: 1 (= мотоцикл)

с этой информацией я хотел бы создать сюжет, похожий на этот:

https://drive.google.com/file/d/1ZhKhb3gADI1-CI_qIgaYlE1A2swZYcKR/view?usp=sharing

Как мне подготовить данные, чтобы иметь возможность выполнять подобные графики?Есть также пустые ячейки (N / A), как я могу справиться с этим?

Я пытался преобразовать данные в соответствии с инструкцией на шпаргалке пакета data.table и итоговой функцией пакета dplyr, но яне удалось написать правильный синтаксис, так как я не нашел подобного примера.

Мой код пока (с пробным неправильным круговым графиком, который выглядит психоделическим):

# -----------------------------------------------------
# Tabellen verarbeiten für SA2
# -----------------------------------------------------

# Libraries
library(readr)
library(dplyr)
library(plotrix)

# Verzeichnis setzen
setwd("C:/Users/julie/Desktop/R/tables")

# csv einlesen
u18 = read.csv("Umfrage2018.csv", sep=";", fileEncoding = "UTF-8")

# Anzeigen 
#View(u18)

# gleiche Antworten zusammenfassen
#summary(u18,"Verkehrsmittel")

# Datentyp anzeigen
#str(u18)

# Variablen
anreise = u18$Verkehrsmittel

# Plot
pie.anreise <- c(anreise)
# Beschriftung der Stücke
names(pie.anreise) <- c("Auto","Fahrrad","Motorrad","ÖV", "Reisebus", "zu Fuss")
# Befehl für Plot, Farben der Stücke
pie(pie.anreise,col = c("green4","green2","blue", "yellow","orange","red"))
# Beschriftungen cex.xy = Schriftgrösse, font.xy = Schriftart: 1 = normal, 2 = fett, 3 = kursiv
title(main = "Anreise 2018", cex.main = 1.8, font.main = 1)
title(xlab = "(SOLA Stafette)", cex.lab = 0.8, font.lab = 1)

1 Ответ

0 голосов
/ 30 января 2019

Многие люди скажут вам, что круговые диаграммы плохие, поэтому все эти пакеты досадно удерживают вас от их создания (я думаю, что все в порядке, люди интуитивно понимают, что с помощью круговых диаграмм все складывается на 100%).

Но если вы хотите это сделать, вы можете использовать библиотеку ggplot2 и функцию coord_polar():

library(ggplot2)

your_data <- data.frame(id = 1:5,
                        transp = c('bus','bus','car','car','bus'))

ggplot(your_data) + aes(x = factor(1), fill = transp) +
  geom_bar() + coord_polar(theta = 'y')
...