【发布时间】:2017-07-15 04:26:47
【问题描述】:
我想导入 csv 文件,但未正确读取变量。
这是我使用 Windows 记事本阅读文件时的摘录:
id,claim,automatic_generation
2839,f,f
2840,f,f
2841,t,f
2842,t,t
我已经用这个函数导入了 csv 文件:
data <- read.csv(file="ventes.csv", header=TRUE, sep=",")
并且列声明未正确读取:无论变量的值如何,它始终为 TRUE。
这是我执行 str(data) 时看到的结果
'data.frame': 4 obs. of 3 variables:
$ id : int 2839 2840 2841 2842
$ claim : logi TRUE TRUE TRUE TRUE
$ automatic_generation : Factor w/ 2 levels "f","t": 1 1 1 0
理想情况下,我希望有两个逻辑变量:TRUE 表示“t”,FALSE 表示“f”
【问题讨论】:
-
R 无法猜测 t 和 f 将作为逻辑导入。由于它们是文本,它们被解释为字符串,然后被强制转换为因子。这是 read.csv 的默认值。您必须使用
colClasses参数来定义每个列的类并将 t 和 f 重新编码为 TRUE 或 FALSE。 -
谢谢,完成了。无论如何,我不明白为什么 atomatic_generation R 将变量定义为因子,而声明它确实是合乎逻辑的,即使两者具有相同的可能值“f”和“t”