मेरे पास एक फ़ाइल है, जिसे genes.txt
कहा जाता है, जिसे मैं डेटा.फ्रेम बनना चाहता हूं।आर: read.table फ़ाइल को पढ़ने से क्यों रोकता है?
mike$ wc -l genes.txt
42476 genes.txt
मैं आर में एक data.frame मैं आदेश read.table, का उपयोग इस तरह में इस फाइल को पढ़ना चाहते हैं: यह लाइनों का एक बहुत मिला है, प्रत्येक पंक्ति में तीन, टैब सीमांकित क्षेत्रों है:
genes = read.table(
genes_file,
sep="\t",
na.strings="-",
fill=TRUE,
col.names=c("GeneSymbol","synonyms","description")
)
ठीक से काम करने लगता है कौन सा है, जहां genes.txt
पर genes_file
अंक।
> nrow(genes)
[1] 27896
और चीजों को मैं पाठ फ़ाइल में पा सकते हैं: लेकिन, मेरा data.frame में लाइनों की संख्या मेरी पाठ फ़ाइल में लाइनों की संख्या से काफी कम है
mike$ grep "SELL" genes.txt
SELL CD62L|LAM1|LECAM1|LEU8|LNHR|LSEL|LYAM1|PLNHR|TQ1 selectin L
डॉन ' टी data.frame में होने लगते हैं
> grep("SELL",genes$GeneSymbol)
integer(0)
यह पता चला है कि
genes = read.delim(
genes_file,
header=FALSE,
na.strings="-",
fill=TRUE,
col.names=c("GeneSymbol","synonyms","description"),
)
बस ठीक काम करता है। Read.delim क्यों पढ़ता है जब read.table नहीं है?
यह उपयोग की है, तो आप निम्न कमांड जो आप एक कमांड लाइन
curl -O ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene_info.gz
gzip -cd gene_info.gz | awk -Ft '$1==9606{print $3 "\t" $5 "\t" $9}' > genes.txt
चेतावनी दी जानी से चलाना चाहिए का उपयोग कर genes.txt
पुन: कर सकते हैं, हालांकि, कि gene_info.gz 101MBish है।
क्या 27897 लाइन पर कुछ खास मौका है जो आयात तोड़ सकता है? मैं अभी फ़ाइल डाउनलोड नहीं कर सकता, अगर आपको अभी तक कोई जवाब नहीं मिला है तो मैं बाद में कोशिश करूंगा। – nico
ऐसा नहीं है कि मैं देख सकता हूं! यह पता चला है कि read.delim ठीक काम करता है, इसलिए यह उससे थोड़ा कम परेशान है। मैंने सवाल को काफी हद तक संपादित किया है (11 लोगों को माफ करना जो इसे जाने के पहले 4 मिनट के भीतर पढ़ते हैं) प्रश्न को फिर से लिखने के लिए read.elim क्यों काम करता है जब read.table विफल रहता है? –
मैंने फ़ाइल को नहीं देखा है लेकिन उद्धरण और टिप्पणियां तोड़ने के लिए दो सामान्य तरीके हैं। उदाहरण के लिए, read.table व्यवहार '#' एक टिप्पणी चरित्र के रूप में जो कई फ़ाइलों के लिए अनुचित है। –