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?

4

2 回答 2

4

看来您正在尝试tolower直接申请data.frame。您应该lapply改用:

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
于 2014-04-04T19:48:49.587 回答
2

尝试:

data[] <- lapply(data, tolower)

因为我认为您不能tolower像这样使用数据框。在这里,我使用CO2数据集执行此操作。

CO2[] <- lapply(CO2, tolower)
于 2014-04-04T19:48:49.503 回答