我有一個數據幀,mydata,構造如下:如何處理if else語句中的缺失值?
col1<-c(8.20e+07, 1.75e+08, NA, 4.80e+07,
3.40e+07, NA, 5.60e+07, 3.00e+06)
col2<-c(1960,1960,1965,1986,1960
,1969,1960,1993)
col3<-c (NA,2.190,NA,NA, 5.000, NA,
1.700,4.220)
mydata<-data.frame(col1,col2,col3)
mydata
# col1 col2 col3
# 1 8.20e+07 1960 NA
# 2 1.75e+08 1960 2.19
# 3 NA 1965 NA
# 4 4.80e+07 1986 NA
# 5 3.40e+07 1960 5.00
# 6 NA 1969 NA
# 7 5.60e+07 1960 1.70
# 8 3.00e+06 1993 4.22
我想創建一個col4
具有值"a", "b" and "c"
, 如果col1
比4.00E + 07,然後col4=="a"
小;如果col1
不小於4.00E + 07,然後col4=="b"
,否則col4=="c
「
這裏是我的代碼:
col4 <-ifelse(col1<4.00e+07, "a",
ifelse(col1 >=4.00e+07, "b",
ifelse(is.na(col1 =4.00e+07), "b", "c")))
但這種計算結果爲:
# [1] "b" "b" NA "b" "a" NA "b" "a"
它不會改變col1中的NA值爲「c」。
結果應該是:
# [1] "b" "b" "c" "b" "a" "c" "b" "a"
什麼是我的代碼的問題?任何建議,將不勝感激!
感謝@akrun也做。一個問題是,不'場所= C(-Inf,4.00E + 07,Inf文件),標籤= C( 「A」, 「B」)'意味着'[4.00E + 07,Inf文件)'將給出一個''b「'的標籤? –
@ eclo.qh是的,你是對的。你可以用'用(MYDATA,切工(COL1,符= C(-Inf,4.00E + 07,天道酬勤)))' – akrun
非常感謝@akrun檢查。 –