[R] Antwort: Re: selecting columns from a data frame or data table by type, ie, numeric, integer

G.Maubach at weinwolf.de G.Maubach at weinwolf.de
Wed May 4 08:30:50 CEST 2016


Hi All,
Hi Carl,

I am not sure if this is useful to you, but I followed your conversation 
and thought of you when I read this:

for (i in 1:ncol(dataset)) {
  if(class(dataset) == "character|numeric|factor|or whatsoever") {
    dataset[, i] <- as.factor(dataset[, i])
  }
}
Source: Zumel, Nina / Mount, John: Practical Data Science with R, Manning 
Publications: Shelter Island, 2014, Chapter 2: Loading data into R, p. 25

This way you can select variables of a certain class only and do 
transformations. I found that this approach is not applicable if used with 
statistical functions like head(). Transformations worked fine for me.

I found reading the above given source worthwile.

Kind regards

Georg

PS: I am not related to the above given authors. I am just a reader 
reporting on - at least to me - a valuable ressource.



Von:    Carl Sutton via R-help <r-help at r-project.org>
An:     William Dunlap <wdunlap at tibco.com>, 
Kopie:  "r-help at r-project.org" <r-help at r-project.org>
Datum:  29.04.2016 22:08
Betreff:        Re: [R] selecting columns from a data frame or data table 
by type, ie, numeric, integer
Gesendet von:   "R-help" <r-help-bounces at r-project.org>



Thank you Bill Dunlap.  So simple I never tried that approach. Tried 
dozens of others though, read manuals till I was getting headaches, and of 
course the answer was simple when one is competent.   Learning, its a 
struggle, but slowly getting there.
Thanks again
 Carl Sutton CPA
 

    On Friday, April 29, 2016 10:50 AM, William Dunlap <wdunlap at tibco.com> 
wrote:
 
 

 > dt1[ vapply(dt1, FUN=is.numeric, FUN.VALUE=NA) ]    a   c1   1 1.12   2 
1.0...10 10 0.2


Bill Dunlap
TIBCO Software
wdunlap tibco.com
On Fri, Apr 29, 2016 at 9:19 AM, Carl Sutton via R-help 
<r-help at r-project.org> wrote:

Good morning RGuru's
I have a data frame of 575 columns.  I want to extract only those columns 
that are numeric(double) or integer to do some machine learning with.  I 
have searched the web for a couple of days (off and on) and have not found 
anything that shows how to do this.   Lots of ways to extract rows, but 
not columns.  I have attempted to use "(x == y)" indices extraction method 
but that threw error that == was for atomic vectors and lists, and I was 
doing this on a data frame.

My test code is below

#  a technique to get column classes
library(data.table)
a <- 1:10
b <- c("a","b","c","d","e","f","g","h","i","j")
c <- seq(1.1, .2, length = 10)
dt1 <- data.table(a,b,c)
str(dt1)
col.classes <- sapply(dt1, class)
head(col.classes)
dt2 <- subset(dt1, typeof = "double" | "numeric")
str(dt2)
dt2   #  not subset
dt2 <- dt1[, list(typeof = "double")]
str(dt2)
class_data <- dt1[,sapply(dt1,is.integer) | sapply(dt1, is.numeric)]
class_data
sum(class_data)
typeof(class_data)
names(class_data)
str(class_data)
 Any help is appreciated
Carl Sutton CPA

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




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



More information about the R-help mailing list