-1

我已经阅读了 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)

最后一行将愉快地输出数字。

这对我来说没有任何意义——当我在第一轮读取数据时,数据要么是数字,要么不是。任何想法可能会发生什么?

编辑:不幸的是我不能分享数据,它是机密的。

4

2 回答 2

0

如果您提供实际数据或其中的样本,帮助会容易得多。

在这种情况下,我假设 R 将有问题的列保存为字符串,并将其写入 CSV 文件中而不带任何括号。到达那里后,它会再次读取它,并且不会费心将没有任何字符的值解释为数字以外的任何内容。换句话说,通过写入和读取 CSV 文件,您可以将仅包含数字的字符串转换为正确的整数(或浮点数)。

但如果没有实际数据或其余代码,这仅仅是猜想。

于 2013-09-04T16:03:05.993 回答
0

Review the colClasses argument of read.csv(), where you can specify what type each column should be read and stored as. That might not be so helpful if you have a large number of columns, but using it makes sure R doesn't have to guess what type of data you're using.

Just because "the last line will happily output numbers" doesn't mean R is treating the values as numeric.

Also, it would help to see some of your data.

于 2013-09-04T16:08:06.977 回答