我已将数据集导入到R中,其中应该包含numeric
个值的列中存在NULL
。这使得R将列类设置为character
或factor
,具体取决于您是否使用stringAsFactors
参数。
为了让您了解这是数据集的结构。
> 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 ...
我想将PCROI列转换为数字,但包含NULL
s会使其变得更难。
我试图解决问题,将值0
设置为当前值为NULL
的所有观察值,但我收到以下错误消息:
> data$PCROI[which(data$PCROI == "NULL"), ] <- 0
Error in data$PCROI[which(data$PCROI == "NULL"), ] <- 0 :
incorrect number of subscripts on matrix
我的想法是更改为0
所有NULL
观察结果,然后使用as.numeric
函数将所有列转换为数字。
答案 0 :(得分:3)
您遇到语法错误:
data$PCROI[which(data$PCROI == "NULL"), ] <- 0 # will not work
data$PCROI[which(data$PCROI == "NULL")] <- 0 # will work
你可以说:
data$PCROI = as.numeric(data$PCROI)
它会自动将“NULL”转换为NA。