我获得了一个.csv数据集,其中包含按日期列出的事件列表。每个事件都发生在一个区域,有一个方法,并且可以有两个结果之一。
任何指定日期都可能发生多个事件。
我的任务是产生以下内容:
1)每天生成result1,result2,resulttotal的图 2)生成result1,result2,每个方法的结果总计的图。 3)生成result1,result2,每个区域的结果总数的图。
我可以使用其他工具来完成这些工作,但我想借此机会看看R对我有多好。
我还可以完成将数据集转换为多个数据集的任务 - 我想避免这种情况。
我可以通过使用嵌套循环来完成任务 - 我希望避免这种情况。
我尝试过以下代码的变体,但我遇到的主要问题是(针对每项任务)
1)每天获得总数 2)获得每种方法的总数 3)获得每个区域的总数
我已经发现了如何离散地处理每一行数据,而不是如何运行总计。换句话说,我可以生成条形图或线图,其中显示每个数据,但不是每个类别(日期,方法或区域)的总计。
我希望我有意义!
所以我的问题很简单:有人可以指出我正确的方向吗?如果我确定如何制作三个地块中的一个,我相信我可以推断到另外两个。我认为我不需要完整的代码,只需要朝着正确的方向努力。
#1
mydata <- read.csv("c:\\users\\jim\\downloads\\book1.csv", header=FALSE)
counts <- table(mydata$V5, mydata$V1)
barplot(counts, xlab="Date", col=c("darkblue","red"),
legend = rownames(counts))
#2
mydata <- read.csv("c:\\users\\jim\\downloads\\book1.csv", header=FALSE)
mydata$V3 <- as.numeric(mydata$V3)
mydata$V4 <- as.numeric(mydata$V4)
mydata$V5 <- as.numeric(mydata$V5)
plot(mydata$V1, mydata$V5,
xlab = "Day",
ylab = "Events",
main = "November Events",
type = "l",
col = "red",
lwd=3)
Date Method Result1 Result2 ResultTotal Location
2015/11/01 Method1 0 3 3 Area1
2015/11/01 Method2 12 0 12 Area2
2015/11/03 Method3 0 3 3 Area1
2015/11/03 Method3 0 1 1 Area1
2015/11/04 Method1 1 0 1 Area1
2015/11/04 Method4 3 10 13 Area3
2015/11/05 Method4 5 0 5 Area4
2015/11/06 Method5 0 2 2 Area1
2015/11/06 Method3 0 1 1 Area1
2015/11/06 Method5 0 1 1 Area1
2015/11/07 Method2 12 15 27 Area5
2015/11/09 Method1 0 4 4 Area1
2015/11/09 Method3 0 1 1 Area1
2015/11/09 Method3 0 1 1 Area1
2015/11/09 Method4 3 14 17 Area6
2015/11/09 Method4 4 20 24 Area7
2015/11/12 Method4 43 240 283 Area8
2015/11/13 Method5 2 2 4 Area1
2015/11/13 Method6 19 33 52 Area5
2015/11/13 Method2 129 352 481 Area9
答案 0 :(得分:0)
汇总数据的最快方式是data.table
方式。在您的情况下,您将按如下方式汇总数据,此外,使用ggplot2
:
library(data.table)
dt <- as.data.table(mydata) # convert to a data.table
# aggregate data
dt[, byArea := .N, by = Location] # assuming that you want to get the number of locations...
dt[, byDate := .N, by = Date]
dt[, byMethod := .N, by = Method]
# say you want to have a barplot:
library(ggplot2)
P <- ggplot(dt, aes(x = Method, y = byMethod)) + geom_bar(stat = "identity")
P
这就是你在寻找什么?