2013-09-26 2 views
1

Я читаю данные с сайта: https://raw.github.com/johnmyleswhite/ML_for_Hackers/master/02-Exploration/data/01_heights_weights_genders.csvstrsplit in R: Как мне разделить данные из одного столбца, разделенные запятой на несколько столбцов?

(1) Сначала я попытался прочитать данные непосредственно в 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

Я не понимаю, почему это должно быть в одном столбце. Вы пытались сохранить его как csv из Excel? Можете ли вы попробовать скопировать его в блокнот и сохранить там вместо этого? – 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/), сохранил его как текстовый файл и прочитал его в R с помощью read.csv (" filename.txt ").

+0

Я обязательно это сделаю, и спасибо за помощь. Однако я хотел бы знать, как решить этот «тип» проблемы, где я могу разделить один столбец на три с этим набором данных. То, что я сделал, это просто перейти на веб-сайт и нажать Ctrl + A, Ctrl + C и скопировать в excel непосредственно сохранение в формате .csv. –

+1

Это происходит потому, что Excel не анализирует текст, вставленный в него, - если вы посмотрите на файл Excel, который вы пытались прочитать, вы увидите, что первый столбец содержит данные из целой строки. Если вам нужен CSV-файл, вы можете вставить данные в блокнот, сохранить его в виде текстового файла, а затем открыть его с помощью Excel, выбрав запятую в качестве разделителя. – so13eit

Смежные вопросы