2015-06-21 23 views
0

我有一個csv文件,正在讀取我的程序。有人可以解釋爲什麼讀取csv文件並更改爲字符的語法

kfreq1=as.character(read.csv("set1.csv",header=FALSE,sep=",")) 

產生輸出

[1] "c(35, 116, 103, 43, 76, 94, 102, 11, 108, 106, 80, 84, 1, 107, 21, 46, 50, 31, 19, 39, 30, 92, 88, 36, 22, 118, 38, 101, 12, 63, 60, 33, 91, 112, 9, 105, 52, 41, 18, 66, 56, 7, 69, 89, 74, 96, 3, 53, 57, 71, 100, 29, 113, 111, 58, 104, 62, 25, 59, 40, 83, 44, 110, 61, 68, 65, 67, 51, 85, 28, 13, 75, 17, 42, 115, 6, 8, 15, 78, 55, 73, 114, 47, 90, 34, 82, 95, 72, 97, 70, 4, 86, 117, 119, 45, 109, 26, 20, 81, 27, 2, 48, 98, 54, 64, 49, 87, 79, 120, 99, 10, 24, 23, 5, 37, 93, 14, 77, 32, 16)" 
[2] "c(7, 5, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)" 

kfreq1=as.character(read.csv("set1.csv",header=FALSE,sep=",")$V1) 

生產作爲參考文件的格式是這樣輸出

[1] "environmental"  "using"    "software"   "experience"  "policy"   
[6] "research"   "skills"   "candidate"   "support"   "statistical" 
... 
environmental,7 
using,5 
software,4 
+0

如果您需要將列轉換爲字符類。你可以用'colClasses'指定read.csv,或者在讀取它後指定'df1 < - read.csv(「set1.csv」,header = FALSE,sep =「,」); df1 $ v1 < - as.character(df1 $ v1)' – akrun

+0

什麼是最簡單的方法來讀取文件並大寫第一列中的單詞? – rdevn00b

+0

嘗試'toupper(df1 $ v1)''as.character'在'vectors'上工作 – akrun

回答

3

我們可以在OP的代碼中使用read.csv來讀取數據。

df1 <- read.csv("set1.csv",header=FALSE, sep=",") 

如果我們需要一個列轉換爲「人物」類,使用colClasses論點read.csv是一種選擇,這也將是是否有其他class例如有用'日期'。另一種方法是在read.csv/read.table中指定stringsAsFactors=FALSE。默認方法是stringsAsFactors=TRUE,所以任何非數字列將被轉換爲factor類,方法是在read.csv/read.table中未指定stringsAsFactors參數。

假設如果我們需要將單個factorcharacter類,我們用df1$V1df1[,'V1']df1[['V1']]或列df1[,1]的數字索引提取柱,並用as.numeric帶(在這個例子中,我們只有一個factor欄)。

df1$V1 <- as.character(df1$V1) 

如果我們需要所有的factor列轉換爲character(一般),我們可以使用循環對lapply所有數據集中的factor列(df1[indx])。

indx <- sapply(df1, is.factor)#create a logical index of 'factor' columns 
df1[indx] <- lapply(df1[indx], as.character) 

關於如何善用的「V1」欄的話問題的第二部分,我們可以使用函數toupper

df1$V1 <- toupper(df1$V1) 
df1$V1 
#[1] "ENVIRONMENTAL" "USING"   "SOFTWARE"  

注意:這也適用於factor類,但輸出將是character類。

+0

好我會嘗試所有這一切。 – rdevn00b