Skip to content

function for remove white space

6 messages · José Luis Cañadas, Rolf Turner, William Michels +1 more

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

Thank you very much in advance,
#
On 22/02/17 12:51, Jos? Luis Aguilar wrote:
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
#
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).'
Cheers,

Bill
On 2/21/17, Rolf Turner <r.turner at auckland.ac.nz> wrote:
#
Thank's for your answer.

I'm using read.csv.

Enviado desde mi iPad
#
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.,
+                 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")))
'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
'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 at gmail.com> wrote:
#
Oh, thank you so much!!

It's perfect!!



Enviado desde mi iPhone