2013-09-26 102 views
1

我從網站讀取數據:https://raw.github.com/johnmyleswhite/ML_for_Hackers/master/02-Exploration/data/01_heights_weights_genders.csvstrsplit in R:如何將由逗號分隔的單列數據分成多列?

(1)在第一I試圖將數據用下面的代碼直接讀入R:

raw_data <- read.table("https://raw.github.com/johnmyleswhite/ML_for_Hackers/master/02-Exploration/data/01_heights_weights_genders.csv", stringsAsFactors=FALSE) 

但我接收到以下錯誤:

Error in file(file, "rt") : cannot open the connection 
In addition: Warning message: 
In file(file, "rt") : unsupported URL scheme 

所以我只是將數據複製到.csv文件中。我將該文件保存爲「Raw_Data.csv」目錄中。但是,這些數據都在一列中。

(2)我通過下面的代碼讀取該文件爲R

raw_data <- read.csv("Raw_Data.csv", stringsAsFactors=FALSE) 

我想要做的是這樣一列一分爲三,與列名「性別」,「身高」 ,「重量」。我試過是這樣的:

for(i in 1:nrow(raw_data)){ 
    raw_data$Gender[i] <- strsplit(raw_data$Gender[i], ",")[[1]][1] 
    raw_data$Height[i] <- strsplit(raw_data$Height[i], ",")[[1]][2] 
    raw_data$Weight[i] <- strsplit(raw_data$Weight[i], ",")[[1]][3] 
} 

不過,我得到這個錯誤:

Error in strsplit(raw_data$Gender[i], ",") : non-character argument 

預先感謝您的幫助!

+1

我不明白爲什麼它應該是在一列。您是否嘗試將其作爲Excel中的csv保存?你可以嘗試將它複製到記事本並從那裏保存它嗎? – TheComeOnMan

+0

謝謝里卡多。當我鍵入類(raw_data [,1])時,我得到了「字符」。 –

回答

1

可能是因爲引號,

嘗試

raw_data <- read.csv("Raw_Data.csv", stringsAsFactors=FALSE, quotes="\"") 
+0

就是這樣!謝謝! –

1

我能夠讀取數據到R與3列就好了。

我不知道你是如何將數據保存到.csv文件中的,但我將數據正確地複製到Notepad ++(http://notepad-plus-plus.org/)中,並將其保存爲文本文件,並將其讀入到read.csv(「 FILENAME.TXT「)。

+0

我肯定會這樣做,並感謝您的幫助。但是,我想知道如何解決這個問題的「類型」,我可以用這個數據集將一列分成三列。我所做的只是進入網站,然後按Ctrl + A,Ctrl + C,然後複製到Excel中直接保存爲.csv。 –

+1

發生這種情況是因爲Excel不解析粘貼到其中的文本 - 如果您查看您嘗試讀入的Excel文件,則會看到第一列包含整行數據。如果你想要一個.csv文件,你可以將數據粘貼到記事本中,保存爲文本文件,然後用Excel打開它,選擇逗號作爲分隔符。 – so13eit

相關問題