2010-09-24 118 views
5

可能重複:
How to read logical data from a file in R如何從一個文件中的R讀取邏輯數據

我生成的,包含一個邏輯值的文件或者是「TRUE」或「FALSE」在每一行上。現在我想將文件中的邏輯數據讀入R.然而,讀入的數據是模式「字符」而不是邏輯值。我想知道如何從文件中讀取數據作爲邏輯值。

我R代碼裏面是

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

謝謝!這樣可行!我嘗試閱讀幫助文檔,但仍然不確定what =「logical」和what = logical(0)之間有什麼區別?謝謝! – Tim

+0

基本上,它需要強制實際值的對象。你也可以說'scan(file ='1.txt',what = TRUE)',它的工作原理是一樣的。 「邏輯(0)」是一種更清潔的方式,IMO。 – ars

2
a 
[1] "FALSE" "TRUE" "TRUE" "TRUE" "TRUE" 
a <- as.logical(a) 
a 
[1] FALSE TRUE TRUE TRUE TRUE