2014-05-19 43 views
-2
x<- c(62, 60, 63, 59, 63, 67) 
grp1<-factor(rep(1:2)) 
grp2<-rep(1:3) 
dat <-data.frame(x,grp1,grp2) 

aaa<-function(dset,group) { 
    if (length(levels(group))==2) { 
    print("ccc") 
    } 
    else { 
    print("ddd") 
    } 
} 

我運行aaa(dset=dat,group="grp1"),但結果不是"ccc"。如何修改aaa函數內容並保持aaa(dset=dat,group="grp1")不變?如何保持函數(dset,組)不變在R

我的回答:

aaa<-function(dset,group) { 
    grp<-dset[,c(group)] 
    if (length(levels(grp))==2) { 
    print("ccc") 
    } 
    else { 
    print("ddd") 
    } 
} 

aaa(dset=dat,group="grp1") 
+0

請閱讀一些介紹材料上'R'。網絡上有很多可用的選項。 – mnel

+0

你能告訴R上哪些介紹性資料能解決我的問題嗎? – stata

+0

@ Urbano,在我的這個問題中。我想保持aaa(dset = dat,group =「grp1」)不變。所以沒有重複。 – stata

回答

2

功能需要知道的group情況下(即它是dset一個子集):

aaa <- function(dset,group) { 
    if (length(levels(dset[,group])) == 2) { #this is different 
    print("ccc") 
    } else { 
    print("ddd") 
    } 
} 
相關問題