簡體   English   中英

如何將NULL文本字符串轉換為數字?

[英]How do I convert a text string of NULL to a number?

我有來自SQL的輸入數據,其中的字段為字符串“ NULL”,例如

unique(file$x) 

退貨

Levels: 1 10 14 8 NULL

我希望“ NULL”的任何結果都變為“ 0”,然后使用as.numeric()進行轉換。

我努力了:

i <- 1
for(i <= nrow(file) {
    if(file$x[i] == "NULL") {
        file$x[i] <- 0
    }
i <- i + 1
}

但是,我現在得到的結果是NULL變成了NULL,但仍然無法將其轉換為數字0。

如果要使用read.csv閱讀,請設置選項na.strings='NULL' 這會將file$x導入為numeric而不是factor ,使用數字NA s對象代替NULL字符串。 然后將NA替換為0 s:

file$x[is.na(file$x)] <- 0

在您的SQL查詢中添加: ISNULL(myNullableField, 0)

這可以確保-如果您的值為NULL-它將轉換為0

我認為這是一個選擇查詢?

在R中:

file$x[file$x=="NULL"] <- 0

盡管您應該從源頭(即SQL)解決此問題,但這是解決此問題的一種方法。

將因子轉換為字符,然后將NA替換為0

我不確定這是否是處理非常大數據的正確方法。

> x <- as.factor(c('1', '10', '14', '8', 'NULL'))
> y <- as.numeric(as.character(x))
Warning message:
NAs introduced by coercion 
> y[is.na(y)] <- 0
> y
[1]  1 10 14  8  0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM