2014-10-30 48 views
0

嗨我是R編程語言的新手,並有一個快速問題。我需要得到以下數據[原始數據參比ROX該CSV看起來是這樣的:有很多更多的數據如何解析csv的某些部分與R

S235-A91 D14 SSEA4+ Tra1-60+ 52 Unknown 

Dose Meter Reading Data  
Cycle Number 1  2 
ROX   519980 520191 
FAM-MGB 62116 62108 

Raw Data for Passive Reference ROX  
Chamber ID 1  2 
S235-A01 15644 15635 
S235-A02 15936 15920 

明顯。由於[被動參考ROX的原始數據]並不是頂部的標題,我將如何去獲取該部分,S235-A01的值?目前我正在搞,並有:test <- read.csv(file="myFile.csv",head=TRUE,sep=",")但不知道該怎麼辦,因爲我不能這樣做:測試$ RawDataforPassiveReferenceROX。任何幫助將不勝感激,謝謝。薩姆

+0

你能不能也表明基於上述數據集的預期效果?此外,這種模式是否重複? – akrun 2014-10-30 03:13:43

+0

模式不重複,爲[被動參考ROX原始數據]設置的數據大約爲40k行,然後在下一個數據集之前以空白結束。我需要的結果是ID和循環值。 IE-S235-A0l,15644,15635.然後下一個S235-A02,15936,15920. – user3558177 2014-10-30 03:18:40

+0

你提到的模式不重複。那麼,你的意思是「在下一個數據集之前以空格結束」? – akrun 2014-10-30 03:41:27

回答

0

嘗試

lines <- readLines("file.txt") 
indx <- grep("^Chamber", lines) 

dat <- read.table(text=lines[(indx+1):length(lines)], 
      sep="", header=FALSE, stringsAsFactors=FALSE, check.names=FALSE) 

    colnames(dat) <- strsplit(gsub("(?<=Chamber) ", "_", 
         lines[indx], perl=TRUE), " +")[[1]] 

dat 
# Chamber_ID  1  2 
#1 S235-A01 15644 15635 
#2 S235-A02 15936 15920 
+0

僅在dat < - read.table(text = lines [(indx + 1):length(lines)], sep =「」,header = FALSE,stringsAsFactors = FALSE,check.names = FALSE)時停止。 – user3558177 2014-10-30 03:36:29

+0

@ user3558177我的代碼基於您粘貼的數據。你可以顯示幾行'線',或者如果可能的話,你可以在'dropbox'中共享這個文件。 – akrun 2014-10-30 03:38:15

+0

Na我會遇到麻煩,但是你給我的東西應該足以幫助我找出Rol。我只是一步一步來找到問題的歡呼聲。 – user3558177 2014-10-30 03:42:30