2015-05-21 64 views
-2

在R中我們使用ifelse(測試,是,否)命令。我面臨的問題是,如果一個成功的出現是真的,我需要進行各種表述,例如ifelse命令中的多個真實條件

ifelse(fp $ month == 1,(fp $ sum(sales_1),fp $ sum(sales_2 )),0)

所以我給二條件,如果FP $月= 1.those條件總和(FP $ sales_1),總和(FP $ sales_2),但R的認識第二個逗號。如何給出多個真正的調味品?

的例子是

a <- "01" 
b <- c(1,2,3,4,5,6) 
c <- c(12,13,1234,1334,23) 
d <- ifelse(a=="01",(sum(b),sum(c)),0) 

在這裏,我想,如果「a」值是「01」,然後我想矢量b和c的總和。但我得到的錯誤: -

Error: unexpected ',' in "d <- ifelse(a=="01",(sum(b),"_ 

的預期結果是: - [1] 21 2616

+1

可能是你需要'rep'即'ifelse(REP(一,二)== '01',C(合計(B) ,sum(c)),0)' – akrun

回答

-2

這工作:

a <- "01" 
ifelse(a=="01", d <- c(sum(b),sum(c)), d <- 0) 
d 
#[1] 21 2616 

a <- "02" 
ifelse(a=="01", d <- c(sum(b),sum(c)), d <-0) 
d 
#[1] 0 
+0

不要像這樣使用'ifelse'。它用於向量輸入。改用'd < - if(a ==「01」)c(sum(b),sum(c))else 0'。 – Roland

+0

爲什麼不把它作爲答案提交,@Roland? –

0

可以使用&( '和')語句。 您還需要總和alocate的變量,就像這樣:

a <- "01" 
b <- c(1,2,3,4,5,6) 
c <- c(12,13,1234,1334,23) 
d <- ifelse(a=="01",((b <- sum(b)) & (c <- sum(c))),0)