R 当我将变量设为数字时,为什么强制引入N/As?

R 当我将变量设为数字时,为什么强制引入N/As?,r,dataframe,R,Dataframe,我试图通过以下代码将变量转换为数字: Joined1[,"utility.x"]<-as.numeric(as.character(Joined1[,"utility.x"])) 它使所有列都不适用 b<-dput(Joined1[1:2,17:20]) structure(list(utipassen.x = c(0.219353162283623, 0.219353162283623 ), mode.x = structure(c(2L, 2L), .Label = c("1"

我试图通过以下代码将变量转换为数字:

Joined1[,"utility.x"]<-as.numeric(as.character(Joined1[,"utility.x"]))
它使所有列都不适用

b<-dput(Joined1[1:2,17:20])
structure(list(utipassen.x = c(0.219353162283623, 0.219353162283623
), mode.x = structure(c(2L, 2L), .Label = c("1", "3"), class = "factor"), 
    utility.x = c(4.02748247217461, 4.02748247217461), new.x = c(2, 
    2)), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"
))
如果您需要查看我的数据,请告诉我。正如您在代码中看到的,如果您打印,我希望将utility.x设置为数字。

Joined1[,utility.x],您将看到结果是一个TIBLE,在该结果上使用as.character会导致意外的结果这是因为Joined1是一个TIBLE,如果您有一个类data.frameonly的对象,那么您的代码应该可以工作

但是,Joined1$utility.x是一个向量,因此您可以

Joined1$utility.x <- as.numeric(as.character(Joined1$utility.x))

utility.x不是已经是数字了吗?classb$utility.x[1]numericIt您可能有一个字符串在utility.x中无法转换为数字。但是,它不会显示在示例数据中。请尝试uniqueJoined1$utility.x,看看是否可以确定导致问题的值。作为旁注,代词是you,而不是u。