2015-03-19 66 views
0

我在Windows操作系统上使用R 3.1.3 32位,并且有一个csv文件 - 逗号分隔 - 有8列和1001行(包括标题)(整个数据集是24000+行)。如何子集R中的文本表

我的目标是拉出“网站”名称中至少包含“医院”,“皇家”,“信任”之一的所有行。

> datac <- read.csv("data1c.csv", header = TRUE, colClasses = c("character", "character", "character", "character", "character", "character", "character", "character"))) 
Error: unexpected ')' in "datac <- read.csv("data1c.csv", header = TRUE, colClasses = c("character", "character", "character", "character", "character", "character", "character", "character")))" 

> read.csv("data1c.csv", header = TRUE, col.names = c("ODS","Site","NGrouping", "Address1", "Address2", "Address3", "Address4", "Postcode") 
Error in match.arg(numerals) : 'arg' should be one of “allow.loss”, “warn.loss”, “no.loss” 

> subset("data1c.csv", Site=="HOSPITAL") 
Error in subset.default("data1c.csv", Site == "HOSPITAL") : object 'Site' not found 

> x <- matrix(rnorm(8008, 1), ncol = 8) 
> y <- c(1, seq(8)) 
> x <- cbind(x, y) 

Warning message: 
In cbind(x, y) : 
    number of rows of result is not a multiple of vector length (arg 2) 

我很新的这所以任何帮助,将不胜感激。

+2

每条线路至少有一个语法错误。例如,在第一行中,你不需要最后一个''''。在第二个错过'col.names'参数后的'c'。在'subset'中,你传递一个'data.frame',而不是一个文件名(你知道区别吗?)。 – nicola 2015-03-19 10:32:24

+0

世界上最后一块代码与前面的代码有关吗?这是功课吗?在第二个块上查看列名称列表,这里的代码突出显示哪一个不像其他列表。 – Elin 2015-03-19 10:53:40

回答

0

对于你第一个错误,你有一个额外的)是结束(三个而不是两个)。

对于第二个,你忘了把你的列名的列表中的向量,所以read.csv把它当作额外的参数,这样做:

read.csv("data1c.csv", header = TRUE, col.names =c("ODS","Site","NGrouping", "Address1", "Address2", "Address3", "Address4", "Postcode") 

对于第三,要子集的第一个参数必须是一个data.frame

subset(datac, Site%in%c("HOSPITAL", "ROYAL", "TRUST")) 

对于警告,x具有1001行和8列而y是长度为9(1 + length(seq(8)))这正是该警告是告诉你的向量。因此,您必须从y中删除一个项目,或者添加一列到x

+0

谢谢Math。我试过你的代码: > datac < - read.csv(“data1c.csv”,header = TRUE,colClasses = c(“character”,“character”,“character”,“character”,“character”字符“,”字符“,”字符“)) > read.csv(”data1c.csv“,header = TRUE,col.names = c(”ODS“,”Site“,”NGrouping“,”Address1“ ,“地址2”,“地址3”,“地址4”,“邮政编码”) +子集(datac,%c(“医院”,“ROYAL”,“TRUST”中的站点%) 错误: (“ODS”,“站点”,“NG组”,“地址1”,“地址2”,“地址3”,“地址4”,“ “邮政编码”) 子集“ – Jenna 2015-03-19 11:18:42

+1

请使用'清晰地分隔你的代码。从错误信息中你可以得到一个语法错误。我会说你把所有的东西都放在同一行,而不是R如何工作,试着先执行'read.csv',然后'subset' – Math 2015-03-19 12:47:26