我的小时数据值为八年,我想将特定年份内的所有值进行子集化。例如,2007年的数据集,2008年的数据集,依此类推。目前,日期格式存在很多问题,因为当我指定一个时间段时,会得到另一个日期段。
这是我的表格:LValley,这就是我尝试过的:
LValley <- read.table("C:/LValley.txt", header=TRUE, dec = ",", sep="\t")
year2007 <- subset(LValley, date > as.Date("01.01.2007 01:00", "%d.%m.%Y %H:%M") & date < as.Date("01.02.2008 01:00", "%d.%m.%Y %H:%M"))
但这又给了我另一个日期期限,我希望得到2007年的所有数据。
我也使用了此示例的功能,并且得到了相同的结果#在2个日期之间对数据框进行子集设置
mydatefunc <- function(x,y){LValley[LValley$date >= x & LValley$date <= y,]}
DATE1 <- as.Date("01.01.2007 01:00", "%d.%m.%Y %H:%M")
DATE2 <- as.Date("01.01.2008 00:00", "%d.%m.%Y %H:%M")
Test2007 <- mydatefunc(DATE1,DATE2)
非常感谢您的帮助,
亲切的问候,达尔文
您需要将date
文件中的列转换为date
class。例如:
LValley <- read.table("LValley.txt", header=TRUE,dec=",", sep="\t", stringsAsFactors=FALSE)
date1 <- as.Date(LValley$date, "%d.%m.%Y %H:%M")
Test2007 <- subset(LValley, date1>=DATE1 & date1 <=DATE2)
dim(Test2007)
#[1] 6249 4
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句