我面临以下问题:我需要创建一个图表和一个表格,其中包含不同年份和地区(7年和5个地区)的学术和专业信息。
我有4个级别的学术(fundinc,medioinc,superiorinc和supdout)和3个职业级别(apoio,operacional和estrategico)。
每个级别都是一列(如果fundinc == 1,其他级别为0,如果apoio == 1,则operacional和estrategico都为0)。
数据库按年份和地区分开(data2010nordeste,data2010norte,data2010centro,data2010sudeste,data2010sul,...,data2016nordeste,data2016norte,data2016centro,data2016sudeste,data2016sul)。
db的类似于:
fundinc | medioinc | superiorinc | supdout | apoio | operacional | estrategico
1 | 0 | 0 | 0 | 1 | 0 | 0
0 | 1 | 0 | 0 | 0 | 1 | 0
0 | 0 | 1 | 0 | 0 | 0 | 1
0 | 0 | 1 | 0 | 0 | 0 | 1
0 | 1 | 0 | 0 | 1 | 0 | 0
1 | 0 | 0 | 0 | 1 | 0 | 0
.
.
.
有什么建议吗?我完全迷失了。
我尝试创建一个函数:
pegaescolaridadeapoio = function (base) {
#Fundamental incompleto
a <- base[base$fundinc==1 & base$apoio==1, ]
#Medio incompleto
b <- base[base$medioinc==1 & base$apoio==1,]
#Superior incompleto
c <- base[base$superiorinc==1 & base$apoio==1,]
#superior e outros
d <- base[base$supdout==1 & base$apoio==1,]
vetor <- c(nrow(a),nrow(b),nrow(c),nrow(d))
return (vetor)
}
并将一些载体放在图表/表格上,但我没有成功。
答案 0 :(得分:0)
@RichardoTheodoro
根据您的要求,我建议您简化数据
library(dplyr)
dat.clean <- dat %>%
# Convert your columns into a single column, stored as factor variable
mutate(scholarity = factor(1 * fundinc + 2 * medioinc + 3 * superiorinc + 4 * supdout,
levels = c(1, 2, 3, 4),
labels = c("fundinc", "medioinc", "superiorinc", "supdout")),
profession = factor(1 * apoio + 2 * operacional + 3 * estrategico,
levels = c(1, 2, 3),
labels = c("apoio", "operacional", "estragico"))) %>%
# Remove columns which will no longer be used
select(-fundinc, -medioinc, -superiorinc, -supdout, -apoio, -operacional, -estrategico)
然后你可以继续为你的计数/图表/图表进行其他数据操作:
# Group entries by scholarity and profession, then count the frequency of occurrence
dat.processed <- dat.clean %>%
group_by(scholarity, profession) %>%
mutate(freq = n()) %>%
ungroup()
# Plot bar chart
library(ggplot2)
ggplot(dat.processed, aes(scholarity, freq, fill = profession)) +
geom_bar(stat = "identity", position = "dodge")