如何从文件中读取R语言中的逻辑数据

5

可能是重复问题:
如何在R中从文件中读取逻辑数据

我生成了一个文件,其中每行都包含一个逻辑值,可以是“TRUE”或“FALSE”。现在我想将逻辑数据从文件读入R。但是读入的数据的模式为“character”,而不是逻辑值。我想知道如何从文件中读取数据作为逻辑值。

我的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]转换为逻辑值。

谢谢!

2个回答

5

改为:

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

尝试:

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

请参考文档中的?scan


谢谢!那个有效!我尝试阅读帮助文档,但仍不确定what="logical"和what=logical(0)之间的区别是什么?谢谢! - Tim
基本上,它需要一个实际类型的对象来强制转换值。你也可以只是说scan(file='1.txt', what=TRUE),它会起同样的作用。在我看来,logical(0)是一种更清晰的方式。 - ars

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接