我是 R 新手,我正在尝试使用 hist() 绘制 100,000 个数字列表的直方图,如下所示
-0.764
-0.662
-0.764
-0.019
0.464
0.668
0.464
但我不能这样做,因为 R 提示内容不是数字。这是我尝试过的:
我使用
t <- read.table(file= "file.txt", sep = "\n", dec = ".", header = TRUE)
读取文件,数据加载并且看起来很好(我得到相同的值)我尝试使用
as.numeric(c(t[,1])), sapply(t, as.numeric)
将其设为数字,但得到完全不同的数字,例如53 428 791 428 582 428 979 428 456 533 550
我认为他们可能是小数点“。”的问题。或负号“-”或两者兼而有之。 有什么想法吗?
非常感谢!
最佳答案
R 似乎已经将数据的第一列转换为一个因素。如果此列中的所有数据在文件中都是数字,则不会发生这种情况。所以一定有一个元素不被识别为数字。
您可以在 R 中尝试以下(有点脏)来尝试找出问题所在。从以下因素开始:
R> v <- factor(c("0.51", "-0.12", "0.345", "0.45b", "-0.8"))
您可以通过以下方式确定哪个值导致问题:
R> v[is.na(as.numeric(as.character(v)))]
[1] 0.45b
您可以使用以下命令找到该值在向量中的位置:
R> which(is.na(as.numeric(as.character(v))))
[1] 4
关于R 无法使用 hist() 因为 "content not numeric"由于负十进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15421172/