我正在处理纵向数据并评估政策的使用超过13个月。为了得到我的x轴上不同月份的一些条形图,我将数据从宽格式转换为长格式。
现在,我的数据集看起来像这样
id month hours
1 1 13
1 2 16
1 3 20
2 1 0
2 2 0
2 3 10
我想,重塑后我可以轻松地使用我新创建的“月”变量作为因子并绘制一些图表。
然而,它没有用,并告诉我它是一个列表或原子向量。将它转化为一个因素并没有成功 - 我迫切需要它作为一个因素。
有人知道如何将其变成一个因素吗?
非常感谢你的帮助!
编辑。
OP的图表代码已发布在评论中。在这里。
library(ggplot2)
ggplot(data, aes(x = hours, y = month)) + geom_density() + labs(title = 'Distribution of hours')
答案 0 :(得分:2)
问题似乎出在aes
。 geom_density
只需要x
值,如果您稍微考虑一下,y
没有意义。您需要x
值的密度,因此在垂直轴上,值将是该密度的值,而不是数据集中存在的其他值。
首先,读入数据。
Indirekte_long <- read.table(text = "
id month hours
1 1 13
1 2 16
1 3 20
2 1 0
2 2 0
2 3 10
", header = TRUE)
现在绘制图表。
library(ggplot2)
g <- ggplot(Indirekte_long, aes(hours))
g + geom_density() + labs(title = 'Distribution of hours')
答案 1 :(得分:2)
# Loading ggplot2
library(ggplot2)
# Placing example in dataframe
data <- read.table(text = "
id month hours
1 1 13
1 2 16
1 3 20
2 1 0
2 2 0
2 3 10
", header = TRUE)
# Converting month to factor
data$month <- factor(data$month, levels = 1:12, labels = 1:12)
# Plotting grouping by id
ggplot(data, aes(x = month, y = hours, group = id, color = factor(id))) + geom_line()
# Plotting hour density by month
ggplot(data, aes(hours, color = month)) + geom_density()