1

I have a csv file with some columns, each column has values written in different ways, such as "Car" and "CAR". I wish to convert all values to lowercase, I'm using this code:

data <- read.table(pipe("cut -d' ' -f6 iis_raw.csv"))
data <- tolower(data)

But the result is a bunch of values like:

70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 61, 61, 61, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 70, 70, 70)"

What Am I doing wrong?

Thiago Vieira
  • 126
  • 4
  • 16

2 Answers2

4

It seems like you're trying to apply tolower on a data.frame directly. You should use lapply instead:

X <- read.table(text = "V1,V2,V3
                A,B,C
                A,B,D
                A,G,X
                a,g,f", header = TRUE, sep = ",")
X
#   V1 V2 V3
# 1  A  B  C
# 2  A  B  D
# 3  A  G  X
# 4  a  g  f
tolower(X)
# [1] "c(2, 2, 2, 1)" "c(1, 1, 3, 2)" "c(1, 2, 4, 3)"
lapply(X, tolower)
# $V1
# [1] "a" "a" "a" "a"
# 
# $V2
# [1] "b" "b" "g" "g"
# 
# $V3
# [1] "c" "d" "x" "f"

X[] <- lapply(X, tolower)
X
#   V1 V2 V3
# 1  a  b  c
# 2  a  b  d
# 3  a  g  x
# 4  a  g  f
A5C1D2H2I1M1N2O1R2T1
  • 190,393
  • 28
  • 405
  • 485
2

Try:

data[] <- lapply(data, tolower)

As I don't think you can use tolower ona dataframe like this. Here I do this witht he CO2 data set.

CO2[] <- lapply(CO2, tolower)
Tyler Rinker
  • 108,132
  • 65
  • 322
  • 519