我正在做一个非常简单的操作,我在数据帧中创建一个值为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之后也不会将其转换为数字。