2012-02-02 71 views
0

我有這個巨大的數據框,它有服務器名稱,日期,CPU,內存作爲標題。有多個服務器名稱。我希望能夠通過日期列選擇某個服務器名稱的順序和創建時間嚴重圖表從R數據框中選擇某些行

這是該數據幀的一小部分:

 Hostname    Date  5 60 61 CPUAVG CPUAVG+Sev CPUMaximum MemoryAVG 
1 server1 2012-01-29 01:00:00 23.79 NA NA 2.33  0.72  2.33  23.76 
2 server1 2012-01-29 02:00:00 23.91 NA NA 2.86  2.38  2.86  23.82 
3 server1 2012-01-29 03:00:00 25.65 NA NA 6.25  9.59  6.25  24.85 
4 server2 2012-01-29 04:00:00 26.30 NA NA 18.41  31.09  18.41  25.87 
5 server3 2012-01-29 05:00:00 24.33 NA NA 1.92  0.42  1.92  24.24 
6 server3 2012-01-29 06:00:00 24.40 NA NA 2.65  1.79  2.65  24.31 

回答

3

結帳的「子集」命令。

thisServer <- subset (servers, Hostname="server1") 

然後命令行

thisServerSorted <- thisServer[order(thisServer$Date),] 

然後你就可以從那裏打印。

+3

你也可以直接子集:'servers [servers $ Hostname =='server1',]' – Justin 2012-02-02 15:58:29

+0

非常感謝你。如果有一個大型數據集,我需要這樣做,我需要按日期自動檢索不同的服務器名稱順序,並將它們全部顯示在一個圖表中。 – 2012-02-02 15:59:37

+0

「大」對不同的人意味着不同的事物。如果你剛剛說過它有多少GB,或者有多少行和列,或者類似的東西,它肯定會有幫助。 – 2012-02-02 16:12:13

2
#convert Date to a date field (if needed) 
library(lubridate) 
servers$Date <- ymd_hms(servers$Date) 
#select the servers you need 
SelectedServers <- subset(servers, Hostname %in% c("server1", "server3")) 
library(ggplot2) 
#no need for sorting with ggplot2 
ggplot(SelectedServers, aes(x = Date, y = CPUAVG, colour = Hostname)) + geom_line() 
ggplot(SelectedServers, aes(x = Date, y = CPUAVG)) + geom_line() + facet_wrap(~Hostname)