我正在处理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的新手,不知道从哪里开始。我将如何进行重组?
答案 0 :(得分:1)
这是一个选项,它将为您提供数据集作为输出,以便您可以使用它进行绘图:
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