私は以下のif文をRに書いています。うまくいきますが、私は1)完全に理解していない2)はではないという厄介な警告メッセージがあります。 1に関しては:-)未使用の接続をクローズする際のRの警告メッセージを抑制する方法は?
):それは何
を意味し、 "警告メッセージ:クローズ未使用の接続3"
そして、何数(3)は、この文脈で意味があります? グーグルが私にいくつかのポインタ(How to fix error "closing unused connection"とWarning: closing unused connection n)を見つけましたが、うまくいかないようですが、私は知っています。私は間違って何をしていますか? 以下は私のコードです。
ありがとうございます!
サンダー
filetype = summary(file(opt$datagwas))$class
if(filetype == "gzfile"){
cat("\n* The file appears to be gzipped, checking delimiter now...")
TESTDELIMITER = readLines(opt$datagwas, n = 1)
cat("\n* Data header looks like this:\n")
print(TESTDELIMITER)
if(grepl(",", TESTDELIMITER) == TRUE){
cat("\n* Data is comma-seperated, loading...\n")
GWASDATA_RAW = fread(paste0("zcat < ",opt$datagwas),
header = TRUE, sep = ",", dec = ".",
na.strings = c("", "NA", "na", "Na", "NaN",
"Nan", ".","N/A","n/a", "N/a"),
blank.lines.skip = TRUE)
} else {
cat ("\n\n*** ERROR *** Something is rotten in the City of Gotham. The GWAS data is neither comma, tab, space, nor semicolon delimited. Double back, please.\n\n", file=stderr()) # print error messages to stder
}
} else if(filetype != "gzfile") {
cat("\n* The file appears not to be gezipped, checking delimiter now...")
TESTDELIMITER = readLines(opt$datagwas, n = 1)
cat("\n* Data header looks like this:\n")
print(TESTDELIMITER)
if(grepl(",", TESTDELIMITER) == TRUE){
cat("\n* Data is comma-seperated, loading...\n")
GWASDATA_RAW = fread(opt$datagwas,
header = TRUE, sep = ",",dec = ".",
na.strings = c("", "NA", "na", "Na","NaN",
"Nan", ".","N/A","n/a","N/a"),
blank.lines.skip = TRUE)
} else {
cat ("\n\n*** ERROR *** Something is rotten in the City of Gotham. The GWAS data is neither comma, tab, space, nor semicolon delimited. Double back, please.\n\n", file=stderr()) # print error messages to stder
}
} else {
cat ("\n\n*** ERROR *** Something is rotten in the City of Gotham. We can't determine the file type of the GWAS data. Double back, please.\n\n", file=stderr()) # print error messages to stder
}
closeAllConnections()
しかし、上記の私の特定の例では、 'readLines'と' filetype'から来ている 'TESTDELIMITER'を' summary(file(file.txt)) 'のように閉じなければなりませんか? –
いいえ、これらの変数は接続ではありません。接続は即時に作成されましたが、変数に割り当てられていないので、手動で直接閉じることはできません。 あなたはこのような何か行う必要があります。 CONN < - ファイル(OPT $ datagwas) ファイルタイプ< - 概要(CONN)$クラス TESTDELIMITER < - readLines(CONN、N = 1) 近い(CONN) #を以前のようにif節、freadなどを続けてください。 – mpjdem
分かりやすくするために上記のコードブロックを参照してください – mpjdem