How can I trim leading and trailing white space?

后端 未结 13 1480
北海茫月
北海茫月 2020-11-22 03:53

I am having some troubles with leading and trailing white space in a data.frame.

For example, I like to take a look at a specific row in a data.fra

相关标签:
13条回答
  • 2020-11-22 03:59
    myDummy[myDummy$country == "Austria "] <- "Austria"
    

    After this, you'll need to force R not to recognize "Austria " as a level. Let's pretend you also have "USA" and "Spain" as levels:

    myDummy$country = factor(myDummy$country, levels=c("Austria", "USA", "Spain"))
    

    It is a little less intimidating than the highest voted response, but it should still work.

    0 讨论(0)
  • 2020-11-22 04:03

    Ad 1) To see white spaces you could directly call print.data.frame with modified arguments:

    print(head(iris), quote=TRUE)
    #   Sepal.Length Sepal.Width Petal.Length Petal.Width  Species
    # 1        "5.1"       "3.5"        "1.4"       "0.2" "setosa"
    # 2        "4.9"       "3.0"        "1.4"       "0.2" "setosa"
    # 3        "4.7"       "3.2"        "1.3"       "0.2" "setosa"
    # 4        "4.6"       "3.1"        "1.5"       "0.2" "setosa"
    # 5        "5.0"       "3.6"        "1.4"       "0.2" "setosa"
    # 6        "5.4"       "3.9"        "1.7"       "0.4" "setosa"
    

    See also ?print.data.frame for other options.

    0 讨论(0)
  • 2020-11-22 04:03

    Removing leading and trailing blanks might be achieved through the trim() function from the gdata package as well:

    require(gdata)
    example(trim)
    

    Usage example:

    > trim("   Remove leading and trailing blanks    ")
    [1] "Remove leading and trailing blanks"
    

    I'd prefer to add the answer as comment to user56's, but I am yet unable so writing as an independent answer.

    0 讨论(0)
  • 2020-11-22 04:04

    The best method is trimws().

    The following code will apply this function to the entire dataframe.

    mydataframe<- data.frame(lapply(mydataframe, trimws),stringsAsFactors = FALSE)
    
    0 讨论(0)
  • 2020-11-22 04:08

    To manipulate the white space, use str_trim() in the stringr package. The package has manual dated Feb 15, 2013 and is in CRAN. The function can also handle string vectors.

    install.packages("stringr", dependencies=TRUE)
    require(stringr)
    example(str_trim)
    d4$clean2<-str_trim(d4$V2)
    

    (Credit goes to commenter: R. Cotton)

    0 讨论(0)
  • 2020-11-22 04:08

    A simple function to remove leading and trailing whitespace:

    trim <- function( x ) {
      gsub("(^[[:space:]]+|[[:space:]]+$)", "", x)
    }
    

    Usage:

    > text = "   foo bar  baz 3 "
    > trim(text)
    [1] "foo bar  baz 3"
    
    0 讨论(0)
提交回复
热议问题