मुझे आर में कुछ टेक्स्ट फाइलों को पार्स करने के बाद बनाई गई सूची के तत्वों को निर्यात करने में कठिनाई हो रही है।

यह मेरी मूल फ़ाइल है https://my.pcloud.com/publink/show?code=XZDUm3ZjzHjKn >

तो मैं जो करता हूं उसे पार्स करता हूं, जो कुछ भी शामिल है <BODY> </BODY>, इसे शोर (प्रतीक, लोअर केस इत्यादि) से साफ़ करें और इसे एक सूची में रखें (मेरी मूल फ़ाइल में विभिन्न टेक्स्ट शामिल हैं, और मुझे उन्हें विभाजित करने की आवश्यकता है)।

फिर मैं अलग-अलग टेक्स्ट फाइलों में सूची के तत्वों को निर्यात करता हूं, लेकिन मुझे अपना टेक्स्ट कुछ बेकार पात्रों के साथ मिलता है जिन्हें आर कंसोल में नहीं देखा जा सकता है।

यहाँ मेरा कोड है

library(stats)
library(dplyr)
library(proxy)
library(stringr)
library(data.table)
library(proto) ## needed for next library
library(gsubfn) #read multiple times <BODY>
setwd("input_data")

# parse my input file
doc <- lapply( list.files(), readLines )

# parse files and keep text needed
docNew <- strapply(doc, "<BODY>(.*?)</BODY>", simplify = c)


# clear files
doc1 <- lapply(docNew, function(x) {
  text <- gsub("[[:punct:]]", "", x) %>% tolower()
  text <- gsub("\\s+", " ", text) %>% str_trim()
  return(text)
  })

for (i in 1:5) {
  write.csv( doc1[[i]], file = paste0("output/",i, ".txt"))
}

अब यहाँ बात है, जब मैं कंसोल में doc1[[1]]] को कॉल करता हूँ तो मुझे मिलता है

>     [1] "showers continue throughout the week in the bahia cocoa zone alleviating the rought since early january an improving prospects for
> the coming temporao although normal humiity levels have not been
> restore comissaria smith sai in its weekly review the ry perio means
> the temporao will be late this year arrivals for the week ene february
> 22 were 155221 bags of 60 kilos making a cumulative total for the
> season of 593 mln against 581 at the same stage last year again it
> seems that cocoa elivere earlier on consignment was inclue in the
> arrivals figures comissaria smith sai there is still some oubt as to
> how much ol crop cocoa is still available as harvesting has
> practically come to an en with total bahia crop estimates aroun 64 mln
> bags an sales staning at almost 62 mln there are a few hunre thousan
> bags still in the hans of farmers milemen exporters an processors
> there are oubts as to how much of this cocoa woul be fit for export as
> shippers are now experiencing ificulties in obtaining ... <truncated>

और जब मैं अपनी बनाई गई 1.txt फ़ाइल खोलता हूं, तो मेरे पास एक ऐसा टेक्स्ट होता है जो इस तरह दिखता है:

"", "x" "1", "बाहिया कोको क्षेत्र में पूरे सप्ताह बारिश जारी रहती है जिससे जनवरी की शुरुआत से ही आने वाले टेंपोराओ के लिए एक सुधार की संभावनाओं में सुधार होता है, हालांकि सामान्य नमी के स्तर को अपनी साप्ताहिक समीक्षा में कॉमिसारिया स्मिथ साई को बहाल नहीं किया गया है। ry perio का मतलब है कि इस साल टेंपोराओ इस साल देर से आएगा फरवरी 22 फरवरी 60 किलो के 155221 बैग थे जो पिछले साल इसी स्तर पर 581 के मुकाबले 593 मिलियन के सीजन के लिए संचयी कुल बनाते हैं, ऐसा लगता है कि कोको एलीवर पहले खेप पर आगमन के आंकड़ों में शामिल था कॉमिसारिया स्मिथ साई, अभी भी कुछ संदेह है कि कितनी पुरानी फसल कोको अभी भी उपलब्ध है क्योंकि कटाई व्यावहारिक रूप से कुल बाहिया फसल अनुमान के साथ लगभग 64 मिलियन बैग की बिक्री के साथ लगभग 62 मिलियन की बिक्री के साथ आ गई है। कुछ सौ हजार बोरे अभी भी किसानों के हाथ में हैं, मीलमैन निर्यातक एक प्रोसेसर हैं, इस बात को लेकर संदेह है कि यह कोको निर्यात के लिए कितना उपयुक्त होगा क्योंकि शिपर्स अब पूर्व हैं हाल के सप्ताहों में निम्न गुणवत्ता को देखते हुए बाहिया श्रेष्ठ प्रमाण पत्र प्राप्त करने में कठिनाइयाँ किसानों ने खेप पर अपने कोको हेल का एक गू हिस्सा लिया है कॉमिसारिया स्मिथ साई स्पॉट बीन की कीमतें 15 किलो बीन शिपर्स के प्रति एरोबा 340 से 350 क्रूज़ो तक बढ़ीं, वे अनिच्छुक थे पास के शिपमेंट की पेशकश केवल एक सीमित बिक्री 1750 से 1780 लीटर प्रति टन पर बंदरगाहों के लिए मार्च शिपमेंट के लिए बुक की गई थी, जिसका नाम था नई फसल की बिक्री भी जून के साथ 1850 1880 लीटर और 35 पर 45 लीटर प्रति टन के साथ सभी खुले बंदरगाहों के साथ थी। न्यू यॉर्क जुलाई अगस्त 1870 1875 पर 1880 लीटर प्रति टन एफओबी मक्खन की नियमित बिक्री मए मार्चाप्रिल सोल 4340 4345 पर 4350 लीटर अप्रैल मई मक्खन 227 गुना पर चला गया न्यूयॉर्क मई जून 4400 पर एक 4415 लीटर अगस्त 4351 से 4450 लीटर प्रति दिन 227 एक 228 गुना न्यू यॉर्क 4480 एलआरएस पर एक ऑक्टेक सितंबर एक 227 गुना न्यू यॉर्क ईसी कॉमिसारिया स्मिथ साई एस्टिनेशंस यूएस गुप्त मुद्रा क्षेत्र थे उरुग्वे एक खुले बंदरगाह केक की बिक्री एक पंजीकृत थी मार्चाप्रिल के लिए 785 से 995 लीटर, मई के लिए 785 लीटर, अगस्त के लिए 753 लीटर, ऑक्टेक खरीदारों के लिए 039 गुना न्यूयॉर्क ईसी, अमेरिकी अर्जेंटीना उरुग्वे एक परिवर्तनीय मुद्रा क्षेत्र थे। 125 गुना न्यूयॉर्क जुलाई अगस्त 2400 लीटर पर 125 गुना न्यूयॉर्क सेप्ट एक ऑक्टेक 125 गुना पर न्यू यॉर्क ईसी कॉमिसारिया स्मिथ साई कुल बाहिया बिक्री वर्तमान में 198687 फसल के मुकाबले 613 मिलियन बैग अनुमानित है 198788 फसल के मुकाबले 106 मिलियन बैग पेरियो से 28 फरवरी तक के अंतिम आंकड़े कार्निवल के बाद ब्राजीलियाई कोको ट्रे आयोग द्वारा प्रकाशित किए जाने की उम्मीद है, जो 27 फरवरी को रायटर 3 पर होगा।

मैं "", "x" "1", और "" टेक्स्ट के चारों ओर को हटाकर, केवल सादा पाठ कैसे प्राप्त कर सकता हूं?

मुझे बस कुछ चाहिए:

बाहिया कोको क्षेत्र में पूरे सप्ताह बारिश जारी है, जिससे सूखा कम हो रहा है।

मैंने कोशिश की

for (i in 1:5) {
  write.csv( cat(doc1[[i]]), file = paste0("output/",i, ".txt"))
}

लेकिन प्रिंट केवल

""

मेरी निर्यात की गई फ़ाइलों में (हालांकि यह आर कंसोल में काम करता प्रतीत होता है)

0
Fierce82 30 मई 2017, 14:12
यदि आप cat का उपयोग करके किसी फ़ाइल को लिखना चाहते हैं, तो आप cat(doc1[[i]], file = "...") का उपयोग कर सकते हैं, लेकिन write.csv के संयोजन में नहीं।
 – 
Roman Luštrik
30 मई 2017, 14:39
तो मूल रूप से for (i in 1:5) { cat(doc1[[i]], file = paste0("output/",i, ".txt")) } यह काम करता है, आपको इसे उत्तर के रूप में पोस्ट करना चाहिए। धन्यवाद
 – 
Fierce82
30 मई 2017, 14:54

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप किसी फ़ाइल में एक स्ट्रिंग लिखना चाहते हैं, तो आपकी सबसे अच्छी शर्त cat है। इसे काम करने के लिए किसी अन्य फ़ंक्शन की आवश्यकता नहीं है। जब आप कुछ जटिल सामग्री लिखने के लिए capture.output या sink का उपयोग कर सकते हैं, तो आप जो चाहते हैं उसके लिए निम्नलिखित पर्याप्त प्रतीत होता है।

for (i in 1:length(doc1)) {
  cat(doc1[[i]], file = sprintf("output/file_%s.txt", i))
}
1
Roman Luštrik 30 मई 2017, 15:49