Error message: $ operator is invalid for atomic vectors
Hi Rui, Thanks.? It was my fault.? I had both of these saved (read.table (), data.frame(read.table()).? I think I accidentally pasted the second one, and got the error.? A.K. ----- Original Message ----- From: Rui Barradas <ruipbarradas at sapo.pt> To: arun <smartpink111 at yahoo.com> Cc: r-help <r-help at r-project.org> Sent: Wednesday, August 1, 2012 9:41 AM Subject: Re: Error message: $ operator is invalid for atomic vectors Hello, Because there's a bug in the way I read the data: data.matrix is not well used here, it transforms all variables in character vectors and may cause problems such as
"9" < "10"
[1] FALSE
"9" > "10"
[1] TRUE It was David Winsemius that pointed this out. As a side effect, data.matrix returns a matrix so '$' is invalid. Use read.table and both codes are equivalent. Rui Barradas Em 01-08-2012 14:28, arun escreveu:
HI, The code was working perfectly fine yesterday and today, until half an hour ago.? Couldn't find any problems in the code. Still, I am getting error message. myMatrix <- data.matrix(read.table(text=" Name? ? ? ? ? ? Age ANTONY? ? ? ? 27 IMRAN? ? ? ? ? 30 RAJ? ? ? ? ? ? ? ? ? 22 NAHAS? ? ? ? ? 32 GEO? ? ? ? ? ? ? ? 42 ", header=TRUE)) MinMaxArray? <- data.frame(MIN = 25,MAX=35) myMatrix[myMatrix$Age<=MinMaxArray$MAX & myMatrix$Age>=MinMaxArray$MIN,] #Error in myMatrix$Age : $ operator is invalid for atomic vectors #Then, I tried Rui's code; ? inx <- MinMaxArray[[ "MIN" ]] <= myMatrix[, "Age"] & myMatrix[, "Age"]<= MinMaxArray[[ "MAX" ]] ? myMatrix[ inx , ] ? ? ? Name Age [1,]? ? 1? 27 [2,]? ? 3? 30 [3,]? ? 4? 32 #Previously, this was also working fine. Not sure what is happening. A.K.