2017-09-28 4 views
0
Sample File E:\CPC 091217\091217CPC2.C07 
Model 3007 
Sample # 1 
Start Date 9/12/2017 
tart Time 10:28:20 
Sample Length 4:16:08 
Averaging Interval (secs) 1 
Title 
Instrument ID 3007-03160002 3.1 
Instrument Errors None 
Mean 17193.2 
Min 0 
Max 128348 
Std. Dev. 11582.1 
Time Concentration (#/cm³) 
10:28:21 0 
10:28:22 0 
10:28:23 0 
10:28:24 0 

私のファイルはこのように見えますが、 "Sample File"から "Std.Dev"までのすべての行をスキップしたいので、時間と濃度をヘッダーにします。しかしその前に、03160002の値を(機器IDに)A1として保存し、後でファイル名に使用する必要があります。私が書いたのは次の通りです:R:ラインをスキップしたいが値を保存する

A1ですが、read.csvは残りの6行では機能しなくなりました。

Time Concentration (#/cm³) 
    10:28:21 0 
    10:28:22 0 
    10:28:23 0 
    10:28:24 0 
    (and A1==03160002) 

ありがとう:

Error in read.table(file = file, header = header, sep = sep, quote = quote, : 
     'file' must be a character string or connection 

ので、出力を期待しています。

答えて

0

read.csvを使用してその行を読み取るべきではありません。それを読むにはより良いR関数があります。
これを試してください。 read.csvを使用しているときにsep = ','dec = '.'、またはheader = TRUEを設定する必要はありませんことを

cpcFile <- "cpcFile.txt" 
cpcData <- read.csv(cpcFile, skip = 14) 
cpcData 
#  Time Concentration....cm3. 
#1 10:28:21      0 
#2 10:28:22      0 
#3 10:28:23      0 
#4 10:28:24      0 

txt <- scan(file = cpcFile, what = character(), nmax = 1L, skip = 8L, sep = "\n") 
txt <- scan(what = character(), text = strsplit(txt, "-")[[1]][2], nmax = 1L) 
txt 
#[1] "03160002" 

は注意してください。これらはすでにデフォルトです。
doTRUEを使用すると決してTとなります。誰かがこれを行うと想像してください:T <- FALSE。これは完全に合法で、それでは何ですか?

+0

これは完全に機能します!素晴らしい。ありがとう。 –

0

このエラーは、データフレームであるcpcDataにファイル名を指定したために発生します。私はあなたの意図は、テーブルの部分を読み始めるために追加の6行をスキップすることだと思うが、最初のread.csv呼び出しが9行目からすべての行を読み込むので、それを行うことはできません。あなたは何ができるか

は、skip=14で再びマイナー注意点として、すなわち、

df <- read.csv(cpcFile, sep = ",", dec=".", 
     row.names = NULL,header = TRUE,skip=14) 

を同じファイルを読むことです、私はそれがsep="\t"ないsep=","されるべきだと思います。あなたのファイルはコンマで区切られていません。

関連する問題