【发布时间】:2016-01-28 21:40:55
【问题描述】:
如何将一列一和零直接读入logical,从而避免后续转换?
在一个大的 csv 文件中,有几列的值为零或一,我想将其用作 R 中的逻辑变量。
如果我将这些 colClasses 指定为逻辑,则 read.csv 抱怨 预期为“逻辑”,得到“0”:
Error in scan(file, what, nmax, sep,
dec, quote, skip, nlines, na.strings, :
scan() expected 'a logical', got '0'
另一方面,如果我将colClasses 指定为整数,read.csv 会成功。之后,我可以使用as.logical() 转换它们。
【问题讨论】:
-
我的猜测是,如果值为
TRUE和FALSE(或T和F),您只能执行此操作/直接读取它们。你为什么想要/需要这样做?为了效率,或清晰,或...? -
我当然同意你不应该修改源文件。我仍然不知道阅读然后转换有什么问题。在你的位置,我会编写一个小包装函数来读取然后转换。