[R] Choosing columns by number
David Winsemius
dwinsemius at comcast.net
Tue Aug 25 20:07:06 CEST 2015
On Aug 25, 2015, at 9:31 AM, David L Carlson wrote:
> You might also look at Str() in package DescTools. It is basically str() with column numbers added:
>
>> library(DescTools)
> Loading required package: manipulate
>> data(iris)
>> Str(iris)
> 'data.frame': 150 obs. of 5 variables:
> 1 $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
> 2 $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
> 3 $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
> 4 $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
> 5 $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
You can also display character vectors with numbering at the console with as.matrix:
> as.matrix(names(iris))
[,1]
[1,] "Sepal.Length"
[2,] "Sepal.Width"
[3,] "Petal.Length"
[4,] "Petal.Width"
[5,] "Species"
--
(the other) David.
>
> -------------------------------------
> David L Carlson
> Department of Anthropology
> Texas A&M University
> College Station, TX 77840-4352
>
> -----Original Message-----
> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Sam Albers
> Sent: Tuesday, August 25, 2015 10:45 AM
> To: stephen sefick
> Cc: r-help at r-project.org
> Subject: Re: [R] Choosing columns by number
>
> Thierry's answer of:
>
> data.frame(
> seq_along(iris),
> colnames(iris)
> )
>
> is exactly what I was looking for. Apologies for vagueness and HTML.
> It was unintended.
>
> Sam
>
> On Tue, Aug 25, 2015 at 8:32 AM, stephen sefick <ssefick at gmail.com> wrote:
>> ?grep
>>
>> I think this will do what you want.
>>
>> #something like
>> a <- data.frame(a=rnorm(10), b=rnorm(10), c=rnorm(10), d=rnorm(10))
>>
>> toMatch <- c("a", "d")
>>
>> grep(paste(toMatch,collapse="|"), colnames(a))
>>
>> #to subset
>> a[,grep(paste(toMatch,collapse="|"), colnames(a))]
>>
>>
>> On Tue, Aug 25, 2015 at 10:17 AM, Sam Albers <tonightsthenight at gmail.com>
>> wrote:
>>>
>>> Hi all,
>>>
>>> This is a process question. How do folks efficiently identify column
>>> numbers in a dataframe without manually counting them. For example, if I
>>> want to choose columns from the iris dataframe I know of two options. I
>>> can
>>> do this:
>>>
>>>> str(iris)'data.frame': 150 obs. of 5 variables:
>>> $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
>>> $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
>>> $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
>>> $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
>>> $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1
>>> 1 1 1 1 1 1 ...
>>>
>>> or this:
>>>
>>>> names(iris)[1] "Sepal.Length" "Sepal.Width" "Petal.Length"
>>>> "Petal.Width" "Species"
>>>
>>> Neither option explicitly identifies the column number so that I can
>>> do something like this:
>>>
>>> iris[,c(2,4)]
>>>
>>> I feel like there must be a better way to do this so I wanted to ask
>>> the collective wisdom here what people do to accomplish this.
>>> Obviously this is a trivial example, but the issue really becomes
>>> problematic when you have a large dataframe.
>>>
>>> Thanks in advance!
>>>
>>> Sam
>>>
>>> [[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.
>>
>>
>>
>>
>> --
>> Stephen Sefick
>> **************************************************
>> Auburn University
>> Biological Sciences
>> 331 Funchess Hall
>> Auburn, Alabama
>> 36849
>> **************************************************
>> sas0025 at auburn.edu
>> http://www.auburn.edu/~sas0025
>> **************************************************
>>
>> Let's not spend our time and resources thinking about things that are so
>> little or so large that all they really do for us is puff us up and make us
>> feel like gods. We are mammals, and have not exhausted the annoying little
>> problems of being mammals.
>>
>> -K. Mullis
>>
>> "A big computer, a complex algorithm and a long time does not equal
>> science."
>>
>> -Robert Gentleman
>>
>
> ______________________________________________
> 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.
>
> ______________________________________________
> 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.
David Winsemius
Alameda, CA, USA
More information about the R-help
mailing list