2012-06-20 19 views
7

यह अनुसंधान में एक MSWord 2010 फ़ाइल को पढ़ने के लिए संभव है पढ़ा है? मेरे पास विंडोज 7 और एक डेल पीसी है।एक MSWord आर में दाखिल

A 20 1000 AA 
B 30 1001 BB 
C 10 1500 CC 

मुझे लगता है कि कहते हैं एक चेतावनी संदेश प्राप्त:

my.data <- readLines('c:/users/mark w miller/simple R programs/test_for_r.docx') 

निम्न पाठ युक्त एक MSWord फ़ाइल पढ़ने की कोशिश करने के लिए:

मैं लाइन का उपयोग कर रहा

चेतावनी संदेश : readLines में ("c:/उपयोगकर्ताओं/मार्क डब्ल्यू मिलर/सरल आर कार्यक्रमों/test_for_r.docx"): अधूरा अंतिम पंक्ति 'ग पर पाया:/उपयोगकर्ताओं/निशान wm

# [1] "PK\003\004\024" "¤l"    "ÈFÃË‹Átí" 

मैं इस सरल उदाहरण के साथ जानता हूँ कि मैं आसानी से MSWord किसी भिन्न स्वरूप में फ़ाइल में परिवर्तित कर सकते: iller/सरल आर कार्यक्रमों/test_for_r.docx '

और my.data निरर्थक शब्दों वाला प्रतीत होता है। हालांकि, मेरी वास्तविक डेटा फ़ाइलों में जटिल टेबल शामिल हैं जिन्हें दशकों पहले टाइप किया गया था और फिर बाद में पीडीएफ दस्तावेज़ों में स्कैन किया गया था। मूल कागज, टाइपिंग और/या स्कैनिंग की प्रक्रिया में मूल कागज दस्तावेज़ की उम्र और शायद खामियों कुछ अक्षर और संख्या बहुत स्पष्ट नहीं किया जा रहा है में बदल गया है। अब तक MSWord को पीडीएफ फाइलों में परिवर्तित करने को सही ढंग से टेबल के अनुवाद के लिए सबसे सफल रहा है। एमएसडॉर्ड्स फ़ाइलों को एक्सेल या समृद्ध टेक्स्ट आदि में कनवर्ट करना बहुत सफल नहीं रहा है। MSWord में रूपांतरण के बाद भी परिणामी फाइलें बहुत जटिल हैं और इसमें कई त्रुटियां हैं। मैंने सोचा कि अगर मैं एमएसडॉर्ड्स फ़ाइलों को आर में पढ़ सकता हूं जो उन्हें संपादित और सही करने का सबसे प्रभावी तरीका हो सकता है।

मैं 'पैकेज टीएम' है कि मुझे लगता है कि आर में MSWord फ़ाइलों को पढ़ सकता के बारे में पता कर रहा हूँ, लेकिन मैं इसे का उपयोग कर, क्योंकि यह तीसरे पक्ष के सॉफ़्टवेयर स्थापित करने की आवश्यकता के लिए लगता है के बारे में थोड़ा चिंतित हूं।

किसी भी सुझाव के लिए धन्यवाद।

+0

जहां तक ​​मुझे पता है, एमएस वर्ड फाइलों को पढ़ने के लिए सीआरएएन से कुछ पैकेज स्थापित करने की आवश्यकता होगी। आप तृतीय-पक्ष सॉफ़्टवेयर स्थापित करने के बारे में चिंतित क्यों हैं? –

+0

टीएम पैकेज फंक्शन readDOC() प्रदान करता है। इसके लिए एंटरवर्ड नामक बाहरी (गैर-आर) उपकरण की स्थापना की आवश्यकता है। हालांकि, मेरा मानना ​​है कि पैकेज/टूल केवल वर्ड फाइलों को संस्करण 2003 तक पढ़ता है और .docx फ़ाइलों को संभाल नहीं पाएगा। readLines() या तो सही समाधान नहीं है; इसे इनपुट के रूप में सादे ASCII पाठ की आवश्यकता होती है। – neilfws

+2

क्या होगा यदि आप शब्द को 'html' के रूप में सहेजना चाहते हैं और फिर टेक्स्ट निकालने के लिए वेब स्क्रैपिंग पैकेज (जैसे 'XML' या' RCurl') का उपयोग करना चाहते हैं? – mnel

उत्तर

6

पहले, readLines() सही समाधान है, क्योंकि एक शब्द फ़ाइल को पाठ (यानी कि सादा, ASCII पाठ) फ़ाइल नहीं है नहीं है।

टीएम पैकेज में वर्ड से संबंधित समारोह) readDOC (कहा जाता है लेकिन दोनों यह और आवश्यक तृतीय-पक्ष उपकरण (Antiword) (Word 2003 तक) पुराने वर्ड फ़ाइलों के लिए कर रहे हैं और काम नहीं करेगा नई .docx फ़ाइलों का उपयोग कर।

सबसे अच्छा मेरा सुझाव कर सकते हैं कि आप readPDF कोशिश(), यह भी टीएम पैकेज में पाया जाता है। नोट: यह आवश्यक है कि उपकरण pdftotext आपके सिस्टम पर स्थापित है। लिनक्स के लिए आसान, विंडोज के बारे में कोई जानकारी नहीं। वैकल्पिक रूप से, एक विंडोज उपकरण ढूंढें जो पीडीएफ को सादे में परिवर्तित करता है, ASCII टेक्स्ट फाइलें ( वर्ड फाइलें) - उन्हें विंडोज़ पर नोटपैड का उपयोग करके सही तरीके से खोलना और प्रदर्शित करना चाहिए - फिर रीडलाइन() फिर से प्रयास करें। हालांकि, यह देखते हुए कि आपकी पीडीएफ फाइलें पुरानी हैं और स्कैनर से आती हैं, टेक्स्ट में रूपांतरण मुश्किल हो सकता है।

अंत में: मुझे एहसास है कि आपने इस उदाहरण में मूल निर्णय नहीं लिया है, लेकिन किसी और के लिए - शब्द और पीडीएफ डेटा को संग्रहीत करने के लिए उपयुक्त प्रारूप नहीं हैं जिन्हें आप पार्स करना चाहते हैं।

+1

मुझे लगता है कि यह एक उचित जवाब है, हालांकि मुझे लगता है कि अंतिम वाक्य इतना महत्वपूर्ण है कि मैंने इसे पहले रखा होगा। –

+2

मैं अंतिम वाक्य को फिर से लिखूंगा: "शब्द और पीडीएफ कुछ भी संग्रहीत करने के लिए _not_ उपयुक्त प्रारूप नहीं हैं। कभी।" माइक्रोसॉफ्ट ऑफिस के संस्करणों को जारी करने के लिए कुख्यात है जो पुरानी फ़ाइल प्रारूप (एक्सेल 4.0, कोई भी?) नहीं पढ़ सकता है, और पीडीएफ बट-टुगली है। एएससीआईआईआई और एपब (जो सिर्फ ज़िप्ड एक्सएमएल है) बहुत बेहतर विकल्प हैं। –

+0

वे लोग मुझसे ऐसा क्यों करेंगे ??? – Bob

1

मुझे पता नहीं चला है कि एमएसडॉर्ड फ़ाइल को आर में कैसे पढ़ा जाए, लेकिन मुझे सामग्री को एक प्रारूप में प्राप्त हुआ है जो आर पढ़ सकता है।

  1. मैं एक्रोबेट एक्स प्रो

  2. साथ MSWord करने के लिए एक पीडीएफ परिवर्तित मूल टेबल ठोस ऊर्ध्वाधर कॉलम को अलग लाइनों था। यह पता चला है कि जब मैं एक MSWord फ़ाइल को टेक्स्ट फ़ाइल में परिवर्तित करता हूं, तो यह लंबवत रेखाएं डेटा के स्वरूप को बाधित कर रही थीं, लेकिन मैं टेक्स्ट फ़ाइल बनाने से पहले MSWord फ़ाइल से लाइनों को हटाने में सक्षम था।

  3. 2.

  4. परिणामी पाठ फ़ाइलों को अभी भी व्यापक संपादन की आवश्यकता होती है, लेकिन कम से कम डेटा एक प्रारूप आर में काफी हद तक मौजूद हैं पढ़ सकते हैं चरण में खड़ी लाइनों को हटाने के बाद किसी पाठ फ़ाइल में MSWord फ़ाइल कन्वर्ट और मैं पीडीएफ में सभी डेटा को हाथ से फिर से दर्ज नहीं करना होगा, काम के कई घंटे बचाएंगे।

+2

एक बेहतर विकल्प: अपने ग्रेड छात्रों में से एक को अपने लिए करें। बेशक, यह केवल तभी काम करता है जब आप प्रोफेसर हों और छात्र न हों :-) –

0

आप इसे आसानी से RDCOMClient के साथ कर सकते हैं। ऐसा कहने में, कुछ वर्ण सही ढंग से नहीं पढ़े जाएंगे।

require(RDCOMClient) 
# Create the connection 
wordApp <- COMCreate("Word.Application") 
# Let's set visible to true so you can see it run 
wordApp[["Visible"]] <- TRUE 

# Define the file we want to open 
wordFileName <- "c:/path/to/word/doc.docx" 
# Open the file 
doc <- wordApp[["Documents"]]$Open(wordFileName) 
# Print the text 
print(doc$range()$text()) 
+0

जब मैं इस कोड को आजमाता हूं तो मुझे एक त्रुटि 'अपवाद हुआ' और 'ऑब्जेक्ट दस्तावेज़ नहीं मिला' मिलता है। 'setwd (' सी:/उपयोगकर्ता/मार्कएम/सरल आर कार्यक्रम '); की आवश्यकता है (RDCOMClient); wordApp <- COMCreate ("Word.Aplication"); wordApp [["दृश्यमान"]] <- सत्य; शब्दफाइलनाम <- "सी:/उपयोगकर्ता/मार्कएम/सरल आर प्रोग्राम/My_test_MSWord_file.docx"; डॉक्टर <- wordApp [["दस्तावेज़"]] $ ओपन (wordFileName); प्रिंट (डॉक्टर $ रेंज() $ टेक्स्ट()); ' –

+0

मार्क, आपको यकीन है कि आपको फ़ाइल स्थान सही मिला है? मैं केवल एक अवैध फ़ाइल स्थान को परिभाषित करके समस्या का अनुकरण कर सकता हूं। – Kaines

संबंधित मुद्दे