Hi, I'm just learning my way around R. I got a bunch of states and would like to access to get all of the ones where it's cold. But when I do the following, I will get the following error:> all.states <- as.data.frame(state.x77) > cold.states <- all.states[all.states$Frost > 150, c("Name", "Frost")]Error in `[.data.frame`(all.states, all.states$Frost > 150, c("Name", : undefined columns selected I don't get it. When I look at all.states, this is what I see:> str(all.states)'data.frame': 50 obs. of 8 variables: $ Population: num 3615 365 2212 2110 21198 ... $ Income : num 3624 6315 4530 3378 5114 ... $ Illiteracy: num 2.1 1.5 1.8 1.9 1.1 0.7 1.1 0.9 1.3 2 ... $ Life Exp : num 69 69.3 70.5 70.7 71.7 ... $ Murder : num 15.1 11.3 7.8 10.1 10.3 6.8 3.1 6.2 10.7 13.9 ... $ HS Grad : num 41.3 66.7 58.1 39.9 62.6 63.9 56 54.6 52.6 40.6 ... $ Frost : num 20 152 15 65 20 166 139 103 11 60 ... $ Area : num 50708 566432 113417 51945 156361 ... What am I messing up? [[alternative HTML version deleted]]
Your data frame contains no column named "Name" . Maybe what you want is rownames(all.states)[all.state$Frost>150] However, what you clearly need to do is stop posting until you have done your homework by spending some time with one of the many good R tutorials that are out there (possibly Intro to R, which ships with R, though it's getting a bit dated now). This appears to be a very basic question. If you are going through a tutorial and got stuck here, then note that row names are an attribute of the data frame, not a column name of one of its columns. See ?rownames and the links therein for more info. Cheers, Bert Bert Gunter Genentech Nonclinical Biostatistics (650) 467-7374 "Data is not information. Information is not knowledge. And knowledge is certainly not wisdom." Clifford Stoll On Sun, Mar 22, 2015 at 7:39 AM, Yves S. Garret <yoursurrogategod at gmail.com> wrote:> Hi, I'm just learning my way around R. I got a bunch of states and would > like to access to get all of the ones where it's cold. But when I do the > following, I will get the following error: > >> all.states <- as.data.frame(state.x77) >> cold.states <- all.states[all.states$Frost > 150, c("Name", "Frost")] > Error in `[.data.frame`(all.states, all.states$Frost > 150, c("Name", : > undefined columns selected > > I don't get it. When I look at all.states, this is what I see: > >> str(all.states) > 'data.frame': 50 obs. of 8 variables: > $ Population: num 3615 365 2212 2110 21198 ... > $ Income : num 3624 6315 4530 3378 5114 ... > $ Illiteracy: num 2.1 1.5 1.8 1.9 1.1 0.7 1.1 0.9 1.3 2 ... > $ Life Exp : num 69 69.3 70.5 70.7 71.7 ... > $ Murder : num 15.1 11.3 7.8 10.1 10.3 6.8 3.1 6.2 10.7 13.9 ... > $ HS Grad : num 41.3 66.7 58.1 39.9 62.6 63.9 56 54.6 52.6 40.6 ... > $ Frost : num 20 152 15 65 20 166 139 103 11 60 ... > $ Area : num 50708 566432 113417 51945 156361 ... > > What am I messing up? > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.
Well, first off, you have no variable called "Name". You have lost
the state names as they are rownames in the matrix state.x77 and not a variable.
Try this. It's ugly and I have no idea why I had to do a cbind() but it
seems to work. Personally I find subset easier to read than the indexing
approach.
state <- rownames(state.x77)
all.states <- as.data.frame(state.x77)
all.states <- cbind(state, all.states) ### ?????
coldstates <- subset(all.states, all.states$Frost > 50,
select = c("state","Frost") )
John Kane
Kingston ON Canada
> -----Original Message-----
> From: yoursurrogategod at gmail.com
> Sent: Sun, 22 Mar 2015 10:39:03 -0400
> To: r-help at r-project.org
> Subject: [R] Why can't I access this type?
>
> Hi, I'm just learning my way around R. I got a bunch of states and
would
> like to access to get all of the ones where it's cold. But when I do
the
> following, I will get the following error:
>
>> all.states <- as.data.frame(state.x77)
>> cold.states <- all.states[all.states$Frost > 150,
c("Name", "Frost")]
> Error in `[.data.frame`(all.states, all.states$Frost > 150,
c("Name", :
> undefined columns selected
>
> I don't get it. When I look at all.states, this is what I see:
>
>> str(all.states)
> 'data.frame': 50 obs. of 8 variables:
> $ Population: num 3615 365 2212 2110 21198 ...
> $ Income : num 3624 6315 4530 3378 5114 ...
> $ Illiteracy: num 2.1 1.5 1.8 1.9 1.1 0.7 1.1 0.9 1.3 2 ...
> $ Life Exp : num 69 69.3 70.5 70.7 71.7 ...
> $ Murder : num 15.1 11.3 7.8 10.1 10.3 6.8 3.1 6.2 10.7 13.9 ...
> $ HS Grad : num 41.3 66.7 58.1 39.9 62.6 63.9 56 54.6 52.6 40.6 ...
> $ Frost : num 20 152 15 65 20 166 139 103 11 60 ...
> $ Area : num 50708 566432 113417 51945 156361 ...
>
> What am I messing up?
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
____________________________________________________________
FREE ONLINE PHOTOSHARING - Share your photos online with your friends and
family!
Visit http://www.inbox.com/photosharing to find out more!
On Sun, 22-Mar-2015 at 08:06AM -0800, John Kane wrote:
|> Well, first off, you have no variable called "Name". You have
lost
|> the state names as they are rownames in the matrix state.x77 and
|> not a variable.
|>
|> Try this. It's ugly and I have no idea why I had to do a cbind()
You don't have to use cbind
|> but it seems to work. Personally I find subset easier to read than
|> the indexing approach.
|> state <- rownames(state.x77)
|> all.states <- as.data.frame(state.x77)
|> all.states <- cbind(state, all.states) ### ?????
You don't have to use cbind()
all.states <- within(as.data.frame(state.x77), state <-
rownames(state.x77))
but I think cbind is simpler to read.
|>
|> coldstates <- subset(all.states, all.states$Frost > 50,
|> select = c("state","Frost") )
Tidier, even more so than subset():
require(dplyr)
coldstates <- all.states %>% filter(Frost > 150) %>% select(state,
Frost)
Or, easier to see what's happening:
coldstates <- all.states %>%
filter(Frost > 150) %>%
select(state, Frost)
|>
|>
|> John Kane
|> Kingston ON Canada
|>
|>
|> > -----Original Message-----
|> > From: yoursurrogategod at gmail.com
|> > Sent: Sun, 22 Mar 2015 10:39:03 -0400
|> > To: r-help at r-project.org
|> > Subject: [R] Why can't I access this type?
|> >
|> > Hi, I'm just learning my way around R. I got a bunch of states
and would
|> > like to access to get all of the ones where it's cold. But when
I do the
|> > following, I will get the following error:
|> >
|> >> all.states <- as.data.frame(state.x77)
|> >> cold.states <- all.states[all.states$Frost > 150,
c("Name", "Frost")]
|> > Error in `[.data.frame`(all.states, all.states$Frost > 150,
c("Name", :
|> > undefined columns selected
|> >
|> > I don't get it. When I look at all.states, this is what I see:
|> >
|> >> str(all.states)
|> > 'data.frame': 50 obs. of 8 variables:
|> > $ Population: num 3615 365 2212 2110 21198 ...
|> > $ Income : num 3624 6315 4530 3378 5114 ...
|> > $ Illiteracy: num 2.1 1.5 1.8 1.9 1.1 0.7 1.1 0.9 1.3 2 ...
|> > $ Life Exp : num 69 69.3 70.5 70.7 71.7 ...
|> > $ Murder : num 15.1 11.3 7.8 10.1 10.3 6.8 3.1 6.2 10.7 13.9 ...
|> > $ HS Grad : num 41.3 66.7 58.1 39.9 62.6 63.9 56 54.6 52.6 40.6
...
|> > $ Frost : num 20 152 15 65 20 166 139 103 11 60 ...
|> > $ Area : num 50708 566432 113417 51945 156361 ...
|> >
|> > What am I messing up?
|> >
|> > [[alternative HTML version deleted]]
|> >
|> > ______________________________________________
|> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
|> > 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.
|>
|> ____________________________________________________________
|> FREE ONLINE PHOTOSHARING - Share your photos online with your friends and
family!
|> Visit http://www.inbox.com/photosharing to find out more!
|>
|> ______________________________________________
|> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
|> 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.
--
~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.
___ Patrick Connolly
{~._.~} Great minds discuss ideas
_( Y )_ Average minds discuss events
(:_~*~_:) Small minds discuss people
(_)-(_) ..... Eleanor Roosevelt
~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.