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")
不变?
我的回答:
aaa<-function(dset,group) {
grp<-dset[,c(group)]
if (length(levels(grp))==2) {
print("ccc")
}
else {
print("ddd")
}
}
aaa(dset=dat,group="grp1")
答案 0 :(得分:2)
该函数需要知道group
的上下文(即它是dset
的子集):
aaa <- function(dset,group) {
if (length(levels(dset[,group])) == 2) { #this is different
print("ccc")
} else {
print("ddd")
}
}