在R:中创建总列的列子类别

时间:2017-03-26 14:22:13

标签: r

我正试图以百分比形式将“反应”(喜欢,哇等)的叠加条形图随着时间的推移制作成Facebook分享。

我已将数据抓取并导入R Studio,并将其清除到以下列:

  

status_published(日期时间格式),num_reactions,num_likes,num_loves,num_wows,num_hahas,num_sads,num_angrys

要使用ggplot的颜色变量来显示不同类型的反应,我希望在num_reactions下分配第3到第8列,可能使用:

ggplot(data = I_love_milk, aes(x=Time, y=Reactions)) + geom_point(aes(color=Types))

在这种情况下,我如何制作反应类型?

有什么想法吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我不确定您想要获得的数据的表示形式(可能提供数据样本会有所帮助),但我认为基本问题是您的数据需要wide数据long }数据来创建类别。

要转换数据,只需使用melt包中提供的reshape功能。

请参阅下面的示例。

require(ggplot2)
require(reshape)
df <- read.table(textConnection('datetime,  num_reactions,  num_likes,  num_loves,  num_wows,   num_hahas,  num_sads,   num_angrys
01/01/2017 10:40,   15, 4,  2,  0,  2,  3,  4
01/01/2017 10:41,   12, 3,  0,  3,  3,  1,  2
03/01/2017 10:42,   19, 4,  4,  2,  4,  3,  2
04/01/2017 10:43,   9,  0,  0,  0,  4,  3,  2
05/01/2017 10:44,   12, 1,  2,  2,  2,  3,  2'), sep=',', header=TRUE)  
melted <- melt(data=df, id='datetime')
g <- ggplot(data=melted, aes(x=datetime, y=value, color=variable)) + geom_point()
g

enter image description here