【问题标题】:selecting certain rows from R data frame从 R 数据框中选择某些行
【发布时间】:2012-02-02 15:37:59
【问题描述】:

我有一个巨大的数据框,其中包含服务器名称、日期、CPU、内存作为标题。有多个服务器名称。我希望能够按日期列选择某些服务器名称顺序并创建时间严重图表

这是数据框的一小部分:

     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

【问题讨论】:

    标签: r select dataframe


    【解决方案1】:

    检查“子集”命令。

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

    然后对行进行排序

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

    然后你可以从那里开始绘图。

    【讨论】:

    • 也可以直接子集化:servers[servers$Hostname=='server1',]
    • 非常感谢。如果有一个大型数据集并且我需要按日期顺序自动检索不同的服务器名称,我将如何做到这一点,并将它们全部绘制在一个图表中。
    • “大”对不同的人有不同的含义。如果你只是说它有多少 GB,或者有多少行和列,或者类似的东西,那真的很有帮助。
    • 快速回答是使用 split() 命令。更可靠的答案是使用 ddply 之类的东西(请参阅stackoverflow.com/questions/1395191/…
    • 大意思是当我必须真实文件并根据每个服务器名称在图表中具有不同线条的情况下创建图表时,有 100 台不同的服务器。我需要能够动态选择服务器名称,而不是提前知道它是什么。下面的示例假设我知道服务器名称。
    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 2018-09-19
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多