[R] [FORGED] function for remove white space

José Luis josestadistico at gmail.com
Wed Feb 22 21:49:04 CET 2017


Oh, thank you so much!!

It's perfect!!



Enviado desde mi iPhone

> El 22 feb 2017, a las 17:49, William Dunlap <wdunlap en tibco.com> escribió:
> 
> Try the following function to apply gsub to all character or factor
> columns of a data.frame (and maintain change the class of all
> columns):
> 
> gsubDataFrame <- function(pattern, replacement, x, ...) {
>    stopifnot(is.data.frame(x))
>    for(i in seq_len(ncol(x))) {
>        if (is.character(x[[i]])) {
>            x[[i]] <- gsub(pattern, replacement, x[[i]], ...)
>        } else if (is.factor(x[[i]])) {
>            levels(x[[i]]) <- gsub(pattern, replacement, levels(x[[i]]), ...)
>        } # else do nothing for numeric or other column types
>    }
>    x
> }
> 
> E.g.,
>> d <- data.frame(stringsAsFactors = FALSE,
> +                 Int=1:5,
> +                 Char=c("a a", "baa", "a a ", " aa", "b a a"),
> +                 Fac=factor(c("x x", "yxx", "x x ", " xx", "y x x")))
>> str(d)
> 'data.frame':   5 obs. of  3 variables:
> $ Int : int  1 2 3 4 5
> $ Char: chr  "a a" "baa" "a a " " aa" ...
> $ Fac : Factor w/ 5 levels " xx","x x","x x ",..: 2 5 3 1 4
>> str(gsubDataFrame(" ", "", d)) # delete spaces, use "[[:space:]]" for whitespace
> 'data.frame':   5 obs. of  3 variables:
> $ Int : int  1 2 3 4 5
> $ Char: chr  "aa" "baa" "aa" "aa" ...
> $ Fac : Factor w/ 2 levels "xx","yxx": 1 2 1 1 2
> 
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com
> 
> 
>> On Tue, Feb 21, 2017 at 11:35 PM, José Luis <josestadistico en gmail.com> wrote:
>> Thank's for your answer.
>> 
>> I'm using read.csv.
>> 
>> Enviado desde mi iPad
>> 
>>> El 22/2/2017, a las 3:39, William Michels <wjm1 en caa.columbia.edu> escribió:
>>> 
>>> Hi José (and Rolf),
>>> 
>>> It's not entirely clear what type of 'whitespace' you're referring to,
>>> but if you're using read.table() or read.csv() to create your
>>> dataframe in the first place, setting 'strip.white = TRUE' will remove
>>> leading and trailing whitespace 'from unquoted character fields
>>> (numeric fields are always stripped).'
>>> 
>>>> ?read.table
>>>> ?read.csv
>>> 
>>> Cheers,
>>> 
>>> Bill
>>> 
>>> 
>>>>> On 2/21/17, Rolf Turner <r.turner en auckland.ac.nz> wrote:
>>>>> On 22/02/17 12:51, José Luis Aguilar wrote:
>>>>> Hi all,
>>>>> 
>>>>> i have a dataframe with 34 columns and 1534 observations.
>>>>> 
>>>>> In some columns I have strings with spaces, i want remove the space.
>>>>> Is there a function that removes whitespace from the entire dataframe?
>>>>> I use gsub but I would need some function to automate this.
>>>> 
>>>> Something like
>>>> 
>>>> X <- as.data.frame(lapply(X,function(x){gsub(" ","",x)}))
>>>> 
>>>> Untested, since you provide no reproducible example (despite being told
>>>> by the posting guide to do so).
>>>> 
>>>> I do not know what my idea will do to numeric columns or to factors.
>>>> 
>>>> However it should give you at least a start.
>>>> 
>>>> cheers,
>>>> 
>>>> Rolf Turner
>>>> 
>>>> --
>>>> Technical Editor ANZJS
>>>> Department of Statistics
>>>> University of Auckland
>>>> Phone: +64-9-373-7599 ext. 88276
>>>> 
>>>> ______________________________________________
>>>> R-help en 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 en 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