R 将因子转换为数字,但整列的N/As

R 将因子转换为数字,但整列的N/As,r,read.csv,R,Read.csv,首先,我看了所有的例子和前面的问题,没有找到一个对我的情况有用的答案 我有一个包含300个独立变量的数据集,我正试图将其引入R。这些变量都被归类为因子。在我上传的csv文件中,所有变量都是带两位小数的定价数据。我使用了下面的代码,其中一些变量被转换为小数。但是,许多转换列都用NAs填充;事实上,有些整列完全是NAs dsl$price = as.numeric(as.factor(dsl$price)) # <- this completely changes the data in

首先,我看了所有的例子和前面的问题,没有找到一个对我的情况有用的答案

我有一个包含300个独立变量的数据集,我正试图将其引入R。这些变量都被归类为因子。在我上传的csv文件中,所有变量都是带两位小数的定价数据。我使用了下面的代码,其中一些变量被转换为小数。但是,许多转换列都用
NA
s填充;事实上,有些整列完全是
NA
s

dsl$price = as.numeric(as.factor(dsl$price))    # <- this completely changes the data into something unrecognizablbe
dsl$price = as.numeric(as.character(dsl$price)) # <- lots of NAs or totally NAs

dsl$price=as.numeric(as.factor(dsl$price))\

dsl$price <- as.numeric(as.character(dsl$price))

dsl$price不要将字符串作为因子读取,只需将它们作为字符保存:
read.csv(…,stringsAsFactors=FALSE)
您需要在其中使用as.character:
dsl$price谢谢,丹。这似乎适用于大约一半的变量。如果我一次只做一列,这似乎无关紧要。进一步检查后,在做了你的建议后以NA形式出现的变量是负值。问题解决了。Ctl+1在excel中重新编码变量实际上不会这样做。R将以字符形式读入变量。如果您在Excel的“数字”部分更改类型,它会将其更改为R可以理解的值。