R:添加3.1和0.2,产生一个字符列

时间:2018-02-26 16:38:57

标签: r

我正在做一个非常简单的操作,我在数据帧中创建一个值为3.1 + 0.2的新列。我希望这个新列为数字,因此我将操作转换为as.numeric。出于某种原因,新列值仍然是字符,如下所示:

df <- data.frame(col=c(2, 3, 5))
df$newCol <- as.numeric(3.1+0.2)
filter(df, newCol == 3.3)

newCol == 3.3的过滤器导致零行。

[1] col    newCol
<0 rows> (or 0-length row.names)

但是,如果我将newCol值过滤为字符,则会显示所有记录。

> filter(df, newCol == '3.3')
  col newCol
  1   2    3.3
  2   3    3.3
  3   5    3.3

奇怪的是,一个简单的操作默认将值转换为字符,即使在使用as.numeric之后也不会将其转换为数字。

0 个答案:

没有答案