我有一个包含日期,卷和公司等列的数据框。 我想知道如何为每家公司只保留一行?
grep
会返回行数,但我该如何才能获得完整的行?
除了如何在一个单一的时间序列图上绘制每个公司的这些数量?
我找到了plot.ts但是我无法做到这一点而我没有公司的数量就好像我的情节。我的完整数据集它没有区分公司然后有一个错误的时间系列(单个日期多点)
我想有一个这样的情节: time series plot 但不是"网站"拥有"卷"而不是"鞋子,袜子,蕾丝"有我公司/科目的名称
或者像那样,但是与svolumes一样 time series plot 2
这就是我的数据的样子:
> head(data)
Date Time Subject Sscore Smean Svscore Sdispersion Svolume Sbuzz Last close
1 2015-07-08 09:10:00 MMM -0.2280 0.2593 -0.2795 0.375 8 0.6026 155.430000000
2 2015-07-08 09:10:00 ACE -0.4415 0.3521 -0.0374 0.500 4 0.7200 104.460000000
3 2015-07-07 09:10:00 AES 1.9821 0.0233 1.1743 1.000 1 1.9445 13.200000000
4 2015-07-04 09:10:00 AFL -2.9335 0.0035 -0.2975 1.000 1 0.8321 61.960000000
5 2015-07-07 09:10:00 MMM 0.2977 0.2713 -0.7436 0.400 5 0.4895 155.080000000
6 2015-07-07 09:10:00 ACE -0.2331 0.3519 -0.1118 1.000 3 0.7196 103.330000000
Company name Date
1 3M Company 2015-07-08
2 ACE Limited 2015-07-08
3 The AES Corporation 2015-07-07
4 AFLAC Inc. 2015-07-04
5 3M Company 2015-07-07
6 ACE Limited 2015-07-07
非常感谢!
答案 0 :(得分:1)
我还不完全清楚你拥有什么以及你想要什么。没有可重复的例子,这非常困难!
我假设您希望按公司和日期汇总您的数据。您可以使用data.table
包来实现此目的:
library(data.table)
setDT(data)
newdata<-data[,.(volume=sum(Svolume)),by=.("Company name",Date)]
# Notice that you can use any other function instead of sum. mean, to mention one
获得newdata
个对象后,可以尝试使用ggplot2
绘制对象:
library(ggplot2)
library(scales)
pl<-ggplot(newdata,aes(x=Date,y=volume,group=`Company name`))+geom_line()+scale_x_date(format="%d-%m-%y")
pl
此解决方案旨在通用(因为您的问题中未正确定义所需的输出),因此可能需要进行一些小的调整。
答案 1 :(得分:0)
我发现如何做到这一点,如果它可以帮助别人:
library(ggplot2)
ggplot(data)+geom_line(aes(x=data$Date, y=data$Svolume, group=data$Subject, color=data$Subject))