我一直在尝试对默认的Diamond数据集进行一些操作,并提出了一个问题,我需要考虑两个列值cut = ideal和clarity = vs2。如果这两个都是真的那么我的函数将返回前n个样本中这些类型的钻石的总数。 我的代码如下:
idealvs2<- function(n){
k<-0
s<-apply(head(diamonds,n),1, function(x)ifelse(diamonds$cut=="Ideal" && diamonds$clarity=="VS2",k<-k+1,k<-k+0))
return(k)
}
idealvs2(10)
应该回答3,但是没有发生。
请帮助
答案 0 :(得分:0)
我们需要的是一个简单的函数sum
逻辑向量(cut == "Ideal" | clarity == "VS2"
)
f1 <- function(dat, n){
tmp <- head(dat, n)
with(tmp, sum(cut== "Ideal" | clarity == 'VS2'))
}
f1(diamonds, 10)
#[1] 3