2015-03-19 54 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