如何将csv文件转换为小写/大写保持其结构?

时间:2014-04-04 19:41:01

标签: r csv tolower

我有一个包含一些列的csv文件,每列都有以不同方式编写的值,例如" Car"和" CAR"。我希望将所有值转换为小写,我使用此代码:

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

但结果是一堆像:

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)"

我做错了什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

尝试:

data[] <- lapply(data, tolower)

因为我不认为你可以在这样的数据框架上使用tolower。在这里,我使用CO2数据集来执行此操作。

CO2[] <- lapply(CO2, tolower)