as.numeric产生奇怪的值 - 流行的解决方案不起作用

时间:2018-04-22 20:12:48

标签: r

我只有一行数据帧(从较大的df中减去),我试图将它用作值的向量。我尝试使用x[1,]对第一行进行子集化(实际上只有x这里有效,但我认为这更多"正式")。所以我做了这个

rownames(x)=c() #to make sure nothing messes up with the output

x[1,]

#here is my output
     2000 2001 2002 2003 2004 2005

1 4.2 2.1 1.1 0.5 2.3 2

经过研究,我知道有一些解决方案(我也是红色的常见问题7.10),最常见的是: as.numeric(as.character(x[1,]))

,结果是

1428.0 1203.0 1.1 0.5 2.3 2.0

因此,你可以看到前两个值是#34;怪异的"。我也试过生成NA的as.numeric(levels(x[1,]))[as.integer(x[1,])]。有趣的是,当我提到第一列时它工作正常。

as.numeric(as.character(x[,1]))
[1] 4.2

我做错了什么或问题出在我的csv文件格式化中?不幸的是我不能发布可重复的例子,因为我不明白这个问题的原因。我只有一个提示:从包含多个(20+)类似数据帧的巨大列表中减去x[1,]

我知道这个问题已在这里多次提出,但从我注意到的所有建议的解决方案适用于帖子作者。可悲的是,他们不为我工作。先感谢您。

根据要求,我发布了head(dput(x[1,]))。我把它放到JPEG文件中因为我不能发布这么长的帖子。希望我没有错过任何页面(请记住这只是head()输出:

  [1]: https://i.stack.imgur.com/fMl4P.jpg
  [2]: https://i.stack.imgur.com/aDoNm.jpg
  [3]: https://i.stack.imgur.com/OoQmG.jpg
  [4]: https://i.stack.imgur.com/kKmCc.jpg
  [5]: https://i.stack.imgur.com/6ufQO.jpg
  [6]: https://i.stack.imgur.com/weAPI.jpg
  [7]: https://i.stack.imgur.com/HL44L.jpg
  [8]: https://i.stack.imgur.com/D2vjN.jpg
  [9]: https://i.stack.imgur.com/MNB6w.jpg

我的dput(x[1,])很长,这里是dput(head(x[1,]))

structure(list("2000" = structure(1428L, .Label = c("", "-0.004", "-0.008", "-0.01", "-0.012", "-0.013", "-0.014", "-0.025", "-0.026", "-0.028", "-0.029", "-0.032", "-0.034", "-0.039", "-0.04", "-0.045", "-0.051", "-0.053", "-0.054", "-0.059", "-0.061", "-0.062", "-0.065", "-0.071", "-0.074", "-0.075", "-0.086", "-0.088", "-0.09", "-0.092",

1 个答案:

答案 0 :(得分:0)

好的,经过进一步的研究和大量的反复试验后,我设法形成了这个问题的解决方法。我尝试使用droplevels函数的变体,但没有成功。所以我在我的代码中稍微移回了read.csv部分并添加了stringsAsFactors=Fas.numericas.character都正常工作(它们按原样显示值)。所以我实际上没有找到任何方法将这些数据转换为我想要的方式,而是“及时回到过去”并防止我的问题发生。