我的df:
> str(merged)
'data.frame': 714 obs. of 9 variables:
$ Date : Date, format: "2013-03-29" "2013-03-29" "2013-03-29" "2013-03-29" ...
$ patch : Factor w/ 7 levels "BVG1","BVG11",..: 1 2 3 4 5 6 7 1 2 3 ...
$ prod : num 2.93 2.77 2.86 2.87 3.01 ...
$ workmix_pct : int 100 10 16 13 17 21 22 100 11 19 ...
$ jobcounts : int 9480 968 1551 1267 1625 1946 2123 7328 810 1374 ...
$ travel : num 30.7 34.3 33.8 29.1 28.1 24.9 34 31.8 32.7 36.4 ...
$ FWIHweeklyAvg: num 1.63 4.48 3.1 1.36 1.55 ...
$ CST.NAME : Factor w/ 7 levels "Central Scotland",..: 4 2 3 1 5 7 6 4 2 3 ...
$ month : chr "March" "March" "March" "March" ...
> head(merged)
Date patch prod workmix_pct jobcounts travel FWIHweeklyAvg CST.NAME month
1 2013-03-29 BVG1 2.932208 100 9480 30.7 1.627024 Scotland March
2 2013-03-29 BVG11 2.769156 10 968 34.3 4.475714 Highlands & Islands March
3 2013-03-29 BVG12 2.857344 16 1551 33.8 3.098571 North East Scotland March
4 2013-03-29 BVG13 2.870111 13 1267 29.1 1.361429 Central Scotland March
5 2013-03-29 BVG14 3.011260 17 1625 28.1 1.550000 South East Scotland March
6 2013-03-29 BVG15 3.236246 21 1946 24.9 1.392857 West Central Scotland March
我正试图通过以下方式对补丁BVG1进行子集化。
data=merged[patch %in% c("BVG1"),]
但是收到错误:
Error in match(x, table, nomatch = 0L) : object 'patch' not found
不明白为什么......
我正在尝试使用ggplot
这就是我的尝试:
ggplot(data=merged, aes(x=merged$Date, y=merged$prod, group=patch)) + geom_line() + xlab("") + ylab("Weekly Prods")+ scale_x_date(labels = date_format("%b-%Y"),breaks = "1 month")
这绘制了一张图上的所有补丁......但我想只显示BVG1时间序列,这就是我的尝试:
ggplot(data=merged[patch %in% c("BVG1"),], aes(x=merged$Date, y=merged$prod, group=patch)) + geom_line() + xlab("") + ylab("Weekly Prods")+ scale_x_date(labels = date_format("%b-%Y"),breaks = "1 month")
但得到同样的错误。
有什么想法吗?
更新
使用[merged$patch %in% c("BVG1"),]
答案 0 :(得分:2)
您也可以
data <- subset(merged, patch == "BVG1")
由于您只对patch
作为单一值进行了调整,因此您不需要%in%
,您只需测试是否相等。
当您使用subset()
时,R会自动解释数据框上下文中引用的变量,因此不需要merged$patch
。
答案 1 :(得分:1)
尝试
data=merged[merged$patch %in% c("BVG1"),]
那应该可以解决你的问题。您的数据框中定义了patch
,因此您需要告诉R
在哪里找到它。
此外,您可能希望查看facet_wrap
而不是子集。例如,将+ facet_wrap(~ patch)
添加到plot命令中应该一次显示所有补丁。我不确定这是你想要的输出,但我认为我应该指出它作为一个想法......