2015-11-01 66 views
0

我試圖創建一個新的變量(NPHOURS)的值將是第二個變量的值(HOURS)條件是第三個變量(PROD)的值等於「N」,否則我希望(NPHOURS)的值爲「0」。R:ifelse語句創建新的變量等於第二個變量的值條件的第三個變量的值

的樣本數據:

samp<-structure(list(HOURS = c(4.05, 4.05, 3.95, 3.95, 1), PROD = structure(c(2L, 
1L, 2L, 1L, 1L), .Label = c("N ", "Y "), class = "factor"), NPHOURS = c("0", 
"0", "0", "0", "0")), .Names = c("HOURS", "PROD", "NPHOURS"), row.names = c(NA, 
5L), class = "data.frame") 

以下ifelse語句只產生 「0」。

samp$NPHOURS <- ifelse(samp$PROD == "N", samp$HOURS, 0) 

任何人都可以協助嗎?

回答

0
str(samp$PROD)  

所以......報告 「N」 後的空白....

samp$NPHOURS <- ifelse(samp$PROD == "N ", samp$HOURS, 0) 
0

我們還可以做

i1 <- grep('N', samp$PROD) 
samp$NPHOURS[i1] <- samp$HOURS[i1] 
相關問題