Transform to numeric a column with “NULL” values

為{幸葍}努か 提交于 2020-01-24 21:22:26

问题


I've imported a dataset into R where in a column which should be supposed to contain numeric values are present NULL. This make R set the column class to character or factor depending on if you are using or not the stringAsFactors argument.

To give you and idea this is the structure of the dataset.

> str(data)
'data.frame':   1016 obs. of  10 variables:
 $ Date       : Date, format: "2014-01-01" "2014-01-01" "2014-01-01" "2014-01-01" ...
 $ Name       : chr  "Chi" "Chi" "Chi" "Chi" ...
 $ Impressions: chr  "229097" "3323" "70171" "1359" ...
 $ Revenue    : num  533.78 11.62 346.16 3.36 1282.28 ...
 $ Clicks     : num  472 13 369 1 963 161 1 7 317 21 ...
 $ CTR        : chr  "0.21" "0.39" "0.53" "0.07" ...
 $ PCC        : chr  "32" "2" "18" "0" ...
 $ PCOV       : chr  "3470.52" "94.97" "2176.95" "0" ...
 $ PCROI      : chr  "6.5" "8.17" "6.29" "NULL" ...
 $ Dimension  : Factor w/ 11 levels "100x72","1200x627",..: 1 3 4 5 7 8 9 10 11 1 ...

I would like to transform the PCROI column as numeric, but containing NULLs it makes this harder. I've tried to get around the issue setting the value 0 to all observations where current value is NULL, but I got the following error message:

> data$PCROI[which(data$PCROI == "NULL"), ] <- 0
Error in data$PCROI[which(data$PCROI == "NULL"), ] <- 0 : 
  incorrect number of subscripts on matrix

My idea was to change to 0 all the NULL observations and afterwards transform all the column to numeric using the as.numeric function.


回答1:


You have a syntax error:

data$PCROI[which(data$PCROI == "NULL"), ] <- 0 # will not work
data$PCROI[which(data$PCROI == "NULL")] <- 0 # will work

by the way you can say:

data$PCROI = as.numeric(data$PCROI)

it will convert your "NULL" to NA automatically.



来源:https://stackoverflow.com/questions/21173375/transform-to-numeric-a-column-with-null-values

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!