2014-04-04 27 views
1

我有一些列的csv文件,每列有不同的方式寫的值,如「汽車」和「汽車」。我希望所有的值轉換爲小寫轉換,我用這個代碼:如何將csv文件轉換爲小寫/大寫維護其結構?

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

我到底做錯了什麼?

回答

4

好像你正試圖在data.frame直接申請tolower。您應該使用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 
+0

謝謝阿南達,它工作正常。 –

2

嘗試:

data[] <- lapply(data, tolower) 

因爲我不認爲你可以使用tolower奧納數據幀這樣的。我在這裏用CO2數據集來做這件事。

CO2[] <- lapply(CO2, tolower) 
+0

我們是否真的在同一時間發佈我們的答案? +1的思路。 – A5C1D2H2I1M1N2O1R2T1