我在R中的表中读过,我正在尝试记录数据。这给了我一个错误,即最后一列包含非数字值:
> log(TD_complete)
Error in Math.data.frame(list(X2011.01 = c(187072L, 140815L, 785077L, :
non-numeric variable in data frame: X2013.05
数据“看起来”是数字的,即当我读到它时,我的大脑将其解释为数字。我不能完全错,因为以下内容可行:
> write.table(TD_complete,"C:\\tmp\\rubbish.csv", sep = ",")
> newdata = read.csv("C:\\tmp\\rubbish.csv")
> log(newdata)
最后一行很乐意输出数字。
这对我没有任何意义 - 当我在第一轮中读取数据时数据是数字,或者不是。有什么想法可能会发生什么?
编辑:不幸的是我无法共享数据,这是保密的。
答案 0 :(得分:0)
如果您提供实际数据或其样本,帮助将更容易。
在这种情况下,我假设R将有问题的列保存为字符串,并将其没有任何parantheses写入CSV文件。在那里之后,它会再次读取它并且不会在没有任何字符的情况下解释一个值而不是数字。换句话说,通过写入和读取CSV文件,您将仅包含数字的字符串转换为适当的整数(或浮点数)。
但如果没有实际数据或其他代码,这仅仅是猜想。
答案 1 :(得分:0)
查看read.csv()的colClasses参数,您可以在其中指定每个列应该读取和存储的类型。如果您拥有大量列,那可能不会那么有用,但使用它可以确保R不必猜测您正在使用的数据类型。
仅仅因为“最后一行将很乐意输出数字”并不意味着R将值视为数字。
此外,您还可以查看部分数据。