Изменить данные опроса множественного ответа в R - PullRequest
0 голосов
/ 03 июля 2018

Я работаю с данными опроса в R, у которых есть вопрос с несколькими ответами.

В настоящее время мои данные выглядят так:

Q1_1  Q1_2  Q1_3 Q1_4
1       1    0    0
1       0    0    0 
0       1    1    0 
1       0    0    0

Мне бы хотелось, чтобы это выглядело так, чтобы я мог создать гистограмму, сравнивая счет:

Q1     Count 
Q1_1     3
Q1_2     2
Q1_3     1 
Q1_4     0 

Я новичок в R и понятия не имею, с чего начать. Как бы я перестроил это?

1 Ответ

0 голосов
/ 03 июля 2018

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

df = read.table(text = "
Q1_1  Q1_2  Q1_3 Q1_4
1       1    0    0
1       0    0    0 
0       1    1    0 
1       0    0    0
", header=T)

library(tidyverse)

df %>%
  gather(col, value) %>%         # reshape data
  group_by(col) %>%              # for every column name
  summarise(Count = sum(value))  # get sum of values

# # A tibble: 4 x 2
#    col  Count
#   <chr> <int>
# 1 Q1_1      3
# 2 Q1_2      2
# 3 Q1_3      1
# 4 Q1_4      0

Другие варианты это

df %>%
  summarise_all(sum) %>%  # get the sum for each column
  gather(col, value)      # reshape data

#    col value
# 1 Q1_1     3
# 2 Q1_2     2
# 3 Q1_3     1
# 4 Q1_4     0

Вы также можете использовать colSums, но вам нужно получить и сохранить имена столбцов в виде столбца в новом наборе данных:

res = colSums(df)

data.frame(col = names(res),
           Count = res)

#       col Count
# Q1_1 Q1_1     3
# Q1_2 Q1_2     2
# Q1_3 Q1_3     1
# Q1_4 Q1_4     0
...