计算R中值的实例
问题描述:
Data:-
Date Value
2010 Q1 x
2011 Q4 x
2010 Q1 x
2010 Q3 x
2015 Q2 x
2016 Q1 x
2015 Q1 x
2013 Q4 x
2012 Q3 x
我需要计算单个年份中的点数并最终绘制它们。所以我写了一个代码来完成这项工作,但是它涉及硬编码循环范围。计算R中值的实例
Code:-
require(zoo)
year=count=""
for (i in 2009:2016){
year=c(year,i+1)
count=c(count,length(data[which(data$Date>i & data$Date<i+1),1]))
}
year=year[2:length(year)]
count=count[2:length(count)]
plot(year,count)
Output:-
year "2010" "2011" 2012" "2013" "2015" "2016"
count "3" "1" "1" "1" "2""1"
我在寻找基本上两件事的帮助。首先是我如何推广代码,其次是我可以替代连接方法,因为我总是需要删除代码末尾的每个向量的第一个元素。谢谢。
答
这是我会怎么做(有一些示例值):
date <- c(2010, 2010, 2010, 2011, 2012, 2012, 2013, 2013, 2013)
value <- rep('x', times = 9)
dat <- data.frame(date, value)
dates = unique(dat$date)
count <- c()
for(i in 1:length(dates)){
n <- length(which(dat$date == dates[i]))
count[i] <- n
}
output <- data.frame(dates, count)
如果你的数据“日期”字段,你不想要的,你可以使用超过一年的其他值gsub或其他一些预先分离出来的方法。
'table(data $ Date)'给出了你的输出结果,如果你只需要一年,我就不会真正理解你的数据结构。它看起来像你的示例数据中的日期是一个字符串(一年四分之一),但你把它作为一个数字年只在循环中 – rawr
@rawr日期类'yearqtr',因此我试着比较它,它的工作。要使用表格方法,我需要首先分离出一年,然后使用它。它以任何方式工作。谢谢。 – Meesha
所以你使用动物园包?请注意你的问题中的任何额外的软件包 – rawr