Dear R Helpers, I did a search for deleting rows based on conditions but wasn't able to find an example that addressed the error that I am getting. I am hoping that this is a simple syntax phenomenon that somebody else knows off the top of their head. My apologies for not providing a reproducible example but I think that the information given will allow someone to give me a hint. I want to delete the rows of the data frame ZZ where Index is earlier that Jan 1 of 2007. That Index column is a factor. When I tired a couple of different methods, I got the error shown below. Can anybody tell me what I am doing wrong? I would really appreciate it. --John Sparks> str(ZZ)'data.frame': 1584 obs. of 7 variables: $ Index : Factor w/ 1583 levels "2006-04-07","2006-04-10",..: 1 2 3 4 5 6 7 8 9 10 ... $ Open : num 17.5 17.6 16.8 17.2 17 ... $ High : num 18.2 17.6 17.2 17.2 17.1 ... $ Low : num 17.3 16.8 16.8 16.8 16.6 ... $ Close : num 17.5 16.8 17.1 16.8 16.7 ... $ Volume : num 23834500 2916000 1453700 991400 967400 ... $ Adjusted: num 16.8 16.2 16.4 16.2 16 ...> test<-ZZ[ZZ$Index>"2007-01-01",]Warning message: In Ops.factor(ZZ$Index, "2007-01-01") : > not meaningful for factors> > test<-subset(ZZ,Index>2007-01-01)Warning message: In Ops.factor(Index, 2007 - 1 - 1) : > not meaningful for factors
On Apr 15, 2013, at 9:58 AM, Sparks, John James wrote:> Dear R Helpers, > > I did a search for deleting rows based on conditions but wasn't able to > find an example that addressed the error that I am getting. I am hoping > that this is a simple syntax phenomenon that somebody else knows off the > top of their head. My apologies for not providing a reproducible example > but I think that the information given will allow someone to give me a > hint. > > I want to delete the rows of the data frame ZZ where Index is earlier that > Jan 1 of 2007. That Index column is a factor. When I tired a couple of > different methods, I got the error shown below. Can anybody tell me what > I am doing wrong? I would really appreciate it. > > --John Sparks > >> str(ZZ) > 'data.frame': 1584 obs. of 7 variables: > $ Index : Factor w/ 1583 levels "2006-04-07","2006-04-10",..: 1 2 3 4 5 > 6 7 8 9 10 ... > $ Open : num 17.5 17.6 16.8 17.2 17 ... > $ High : num 18.2 17.6 17.2 17.2 17.1 ... > $ Low : num 17.3 16.8 16.8 16.8 16.6 ... > $ Close : num 17.5 16.8 17.1 16.8 16.7 ... > $ Volume : num 23834500 2916000 1453700 991400 967400 ... > $ Adjusted: num 16.8 16.2 16.4 16.2 16 ... >> test<-ZZ[ZZ$Index>"2007-01-01",]It should work using string comparisons: test<-ZZ[as.character(ZZ$Index) > "2007-01-01", ] -- David> Warning message: > In Ops.factor(ZZ$Index, "2007-01-01") : > not meaningful for factors >> >> test<-subset(ZZ,Index>2007-01-01) > Warning message: > In Ops.factor(Index, 2007 - 1 - 1) : > not meaningful for factors > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.David Winsemius Alameda, CA, USA
Hi, May be this helps: ZZ<- data.frame(Index=c("2006-04-07","2006-04-08","2007-01-01","2007-01-01","2008-01-04","2008-01-04"),Open=c(17.5,17.6,16.8,17.2,17.3,17.5),High=c(18.2,17.6,17.2,17.2,17.5,17.6),Low=c(17.3,16.8,16.8,16.8,16.2,15.8),Close=c(17.5,16.8,17.1,16.8,15.9,16.2),Volume=c(23834500,2916000,1453700,991400,443522,38990),Adjusted=c(16.8,16.2,16.4,16.2,16.5,17.6)) ZZ$Index<- as.Date(ZZ$Index,format="%Y-%m-%d") library(xts) ?ZZ1<-xts(ZZ[,-1],ZZ[,1]) ZZ1 #?????????? Open High? Low Close?? Volume Adjusted #2006-04-07 17.5 18.2 17.3? 17.5 23834500???? 16.8 #2006-04-08 17.6 17.6 16.8? 16.8? 2916000???? 16.2 #2007-01-01 16.8 17.2 16.8? 17.1? 1453700???? 16.4 #2007-01-01 17.2 17.2 16.8? 16.8?? 991400???? 16.2 #2008-01-04 17.3 17.5 16.2? 15.9?? 443522???? 16.5 #2008-01-04 17.5 17.6 15.8? 16.2??? 38990???? 17.6 Suppose, I wanted to get only the rows starting from "2006-04-08" ?ZZ1['2006-04-08/'] #?????????? Open High? Low Close? Volume Adjusted #2006-04-08 17.6 17.6 16.8? 16.8 2916000???? 16.2 #2007-01-01 16.8 17.2 16.8? 17.1 1453700???? 16.4 #2007-01-01 17.2 17.2 16.8? 16.8? 991400???? 16.2 #2008-01-04 17.3 17.5 16.2? 15.9? 443522???? 16.5 #2008-01-04 17.5 17.6 15.8? 16.2?? 38990???? 17.6 A.K. ----- Original Message ----- From: "Sparks, John James" <jspark4 at uic.edu> To: r-help at r-project.org Cc: Sent: Monday, April 15, 2013 12:58 PM Subject: [R] Remove Rows Based on Factor Dear R Helpers, I did a search for deleting rows based on conditions but wasn't able to find an example that addressed the error that I am getting.? I am hoping that this is a simple syntax phenomenon that somebody else knows off the top of their head.? My apologies for not providing a reproducible example but I think that the information given will allow someone to give me a hint. I want to delete the rows of the data frame ZZ where Index is earlier that Jan 1 of 2007.? That Index column is a factor.? When I tired a couple of different methods, I got the error shown below.? Can anybody tell me what I am doing wrong?? I would really appreciate it. --John Sparks> str(ZZ)'data.frame':? 1584 obs. of? 7 variables: $ Index? : Factor w/ 1583 levels "2006-04-07","2006-04-10",..: 1 2 3 4 5 6 7 8 9 10 ... $ Open? ? : num? 17.5 17.6 16.8 17.2 17 ... $ High? ? : num? 18.2 17.6 17.2 17.2 17.1 ... $ Low? ? : num? 17.3 16.8 16.8 16.8 16.6 ... $ Close? : num? 17.5 16.8 17.1 16.8 16.7 ... $ Volume? : num? 23834500 2916000 1453700 991400 967400 ... $ Adjusted: num? 16.8 16.2 16.4 16.2 16 ...> test<-ZZ[ZZ$Index>"2007-01-01",]Warning message: In Ops.factor(ZZ$Index, "2007-01-01") : > not meaningful for factors> > test<-subset(ZZ,Index>2007-01-01)Warning message: In Ops.factor(Index, 2007 - 1 - 1) : > not meaningful for factors ______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.