R中的strsplit:如何将用逗号分隔的单列数据拆分成多列?

时间:2013-09-26 21:18:32

标签: r strsplit

我正在阅读网站上的数据:https://raw.github.com/johnmyleswhite/ML_for_Hackers/master/02-Exploration/data/01_heights_weights_genders.csv

(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

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我能够用3列将数据读入R中。

我不确定你是如何将数据保存到.csv文件中的,但我将数据直接复制到Notepad ++(http://notepad-plus-plus.org/)中,将其保存为文本文件,然后将其读入R并读取。 CSV( “FILENAME.TXT”)。

答案 1 :(得分:1)

可能是因为引号,

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