2010-09-24 13 views
5

संभव डुप्लिकेट:
How to read logical data from a file in Rकैसे आर में एक फ़ाइल से तार्किक डेटा को पढ़ने के लिए

मैं जो एक तार्किक मान शामिल है एक फ़ाइल उत्पन्न या तो एक "सही" या एक "FALSE" प्रत्येक पंक्ति पर। अब मैं फ़ाइल से तार्किक डेटा को आर में पढ़ना चाहता हूं। हालांकि, जो डेटा पढ़ा जाता है वह मोड "चरित्र" के तार्किक मान नहीं है। मैं सोच रहा था कि फ़ाइल को तार्किक मूल्यों के रूप में डेटा को कैसे पढ़ा जाए।

मेरे आर कोड

cat(FALSE,"\n", file="1.txt", append=FALSE); 
for (i in 2:5) cat(TRUE,"\n",file="1.txt", append=TRUE); 
a=scan(file="1.txt", what="logical") 

उत्पादन है:

> mode(a) 
1] "character" 
> mode(a[1]) 
[1] "character" 
> a[1] 
[1] "FALSE" 

मैं एक [1] तार्किक मान होना चाहता हूँ।

धन्यवाद और सम्मान!

उत्तर

5

बजाय:

a=scan(file="1.txt", what="logical") 

कोशिश:

a = scan(file="1.txt", what=logical(0)) 

प्रलेखन के लिए ?scan देखें।

+0

धन्यवाद! यह काम करता है! मैंने सहायता दस्तावेज़ को पढ़ने की कोशिश की, लेकिन फिर भी यह सुनिश्चित नहीं है कि = "तार्किक" और क्या = तार्किक (0) के बीच क्या अंतर है? धन्यवाद! – Tim

+0

असल में, यह वास्तविक प्रकार की वस्तु चाहता है जिस पर मूल्यों को मजबूर किया जाना चाहिए। आप बस 'स्कैन (फ़ाइल =' 1.txt ', क्या = TRUE) कह सकते हैं और यह वही काम करेगा। 'लॉजिकल (0)' एक क्लीनर तरीका है, आईएमओ। – ars

2
a 
[1] "FALSE" "TRUE" "TRUE" "TRUE" "TRUE" 
a <- as.logical(a) 
a 
[1] FALSE TRUE TRUE TRUE TRUE 
संबंधित मुद्दे