Number values include comma -- how do I make these numeric?

16,609

Solution 1

If you are trying to add a new column var2 to df, you can use the following

  df$var2 <- as.numeric(gsub(",", "", as.character(df$var1)))

Solution 2

Use as.numeric(gsub(",", "", df$var1)).

You want to use gsub as sub will only replace the first comma.

Share:
16,609
Amanda
Author by

Amanda

Updated on July 17, 2022

Comments

  • Amanda
    Amanda almost 2 years

    I have a whole column of numbers that include comma separators at the thousands. When I try to create a numeric column out of them, anything over 999 becomes NA.

    I used cbind:

    df <- cbind(df, var2 = as.numeric(as.character(df$var1)))
    

    and wound up with:

            var1  var2
    1   2,518.50    NA
    2   2,518.50    NA
    3   5,018.50    NA
    4   4,018.50    NA
    5  10,018.50    NA
    6     318.50 318.5
    7   2,518.50    NA
    8   3,518.50    NA
    9   7,518.50    NA
    10  1,018.50    NA
    

    Is there a way to strip the commas or tell as.numeric how to handle them?

  • Amanda
    Amanda over 11 years
    Nice. I don't even need cbind?
  • Ricardo Saporta
    Ricardo Saporta over 11 years
    nope, with data frames you can just assign. df[[var2]] <- value and df$var2 <- value both work.