Re: [R] Why can't I access this type?
On 2015-03-27 09:19, Patrick Connolly wrote: [...] 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. If you did this: all.states <- within(as.data.frame(state.x77), Name <- rownames(state.x77)) instead of all.states <- within(as.data.frame(state.x77), state <- rownames(state.x77)) Alternatively, since 'data.frame()' coerces internally, one could do all.states <- data.frame(state.x77, Name = rownames(state.x77)) Henric Winell then this would worka; cold.states <- all.states[all.states$Frost > 150, c("Name", "Frost")] Modify the above to match where my guess at what you tried is in error. HTH __ R-help@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.
Re: [R] Why can't I access this type?
On Thu, 26-Mar-2015 at 04:58PM -0400, yoursurrogate...@gmail.com wrote: [...] |> I agree with you on the indexing approach. But even after using |> within, I still get the same error. > You leave us to guess just what you tried, but if you did this: > all.states <- within(as.data.frame(state.x77), state <- rownames(state.x77)) and then again did this: > cold.states <- all.states[all.states$Frost > 150, c("Name", "Frost")] of course it will give the same error, because as you haven't addressed the problem as you've been told 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. If you did this: > all.states <- within(as.data.frame(state.x77), Name <- rownames(state.x77)) instead of > all.states <- within(as.data.frame(state.x77), state <- rownames(state.x77)) then this would worka; > cold.states <- all.states[all.states$Frost > 150, c("Name", "Frost")] Modify the above to match where my guess at what you tried is in error. HTH -- ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. ___Patrick Connolly {~._.~} Great minds discuss ideas _( Y )_ Average minds discuss events (:_~*~_:) Small minds discuss people (_)-(_) . Eleanor Roosevelt ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. __ R-help@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.
Re: [R] Why can't I access this type?
> On Mar 25, 2015, at 10:14, Henric Winell wrote: > >> On 2015-03-25 09:40, Patrick Connolly wrote: >> >> 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") ) > > I find the indexing approach > > coldstates <- all.states[all.states$Frost > 150, c("state","Frost")] > > to be the most direct and obvious solution. > >> 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) > > Well... Opinions may perhaps differ, but apart from '%>%' being butt-ugly > it's also fairly slow: > > > library("microbenchmark") > > microbenchmark( > + subset(all.states, all.states$Frost > 150, select = c("state","Frost")), > + all.states[all.states$Frost > 150, c("state","Frost")], > + all.states %>% filter(Frost > 150) %>% select(state, Frost), > + times = 1000L > + ) > Unit: microseconds > expr > subset(all.states, all.states$Frost > 150, select = c("state", "Frost")) > all.states[all.states$Frost > 150, c("state", "Frost")] > all.states %>% filter(Frost > 150) %>% select(state, Frost) > min lq meanmedianuq max neval cld > 139.112 148.673 163.3960 159.1760 170.7895 1763.200 1000 b > 104.039 111.973 127.2138 120.4395 128.6640 1381.809 1000 a > 1010.076 1033.519 1133.1469 1107.8480 1175.1800 2932.206 1000 c > > Of course, this doesn't matter for interactive one-off use. But lately I've > seen examples of the '%>%' operator creeping into functions in packages. > However, it would be nice to see a fast pipe operator as part of base R. > > > Henric Winell > > > >> >> >> |> >> |> >> |> John Kane >> |> Kingston ON Canada >> |> >> |> >> |> > -Original Message- >> |> > From: yoursurrogate...@gmail.com >> |> > Sent: Sun, 22 Mar 2015 10:39:03 -0400 >> |> > To: r-help@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
Re: [R] Why can't I access this type?
On 2015-03-25 09:40, Patrick Connolly wrote: 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") ) I find the indexing approach coldstates <- all.states[all.states$Frost > 150, c("state","Frost")] to be the most direct and obvious solution. 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) Well... Opinions may perhaps differ, but apart from '%>%' being butt-ugly it's also fairly slow: > library("microbenchmark") > microbenchmark( + subset(all.states, all.states$Frost > 150, select = c("state","Frost")), + all.states[all.states$Frost > 150, c("state","Frost")], + all.states %>% filter(Frost > 150) %>% select(state, Frost), + times = 1000L + ) Unit: microseconds expr subset(all.states, all.states$Frost > 150, select = c("state", "Frost")) all.states[all.states$Frost > 150, c("state", "Frost")] all.states %>% filter(Frost > 150) %>% select(state, Frost) min lq meanmedianuq max neval cld 139.112 148.673 163.3960 159.1760 170.7895 1763.200 1000 b 104.039 111.973 127.2138 120.4395 128.6640 1381.809 1000 a 1010.076 1033.519 1133.1469 1107.8480 1175.1800 2932.206 1000 c Of course, this doesn't matter for interactive one-off use. But lately I've seen examples of the '%>%' operator creeping into functions in packages. However, it would be nice to see a fast pipe operator as part of base R. Henric Winell |> |> |> John Kane |> Kingston ON Canada |> |> |> > -Original Message- |> > From: yoursurrogate...@gmail.com |> > Sent: Sun, 22 Mar 2015 10:39:03 -0400 |> > To: r-help@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@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! |&
Re: [R] Why can't I access this type?
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: yoursurrogate...@gmail.com |> > Sent: Sun, 22 Mar 2015 10:39:03 -0400 |> > To: r-help@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@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@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 ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. __ R-help@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.
Re: [R] Why can't I access this type?
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: yoursurrogate...@gmail.com > Sent: Sun, 22 Mar 2015 10:39:03 -0400 > To: r-help@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@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@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.
Re: [R] Why can't I access this type?
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 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@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. __ R-help@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.
[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@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.