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 ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.