0

以下是一个数据框:

  GENDER PROMOTE
  M      1
  M      0
  M      2
  F      1
  M      0
  F      2
  F      1
  F      1
  M      2
  F      0
  F      2
  F      1

M=男性;F=女性

现在我必须找出女性的数量

(a) 推广==0;(b) 推广==1;(c) 推广==2

我的尝试:

data <- read.table("sum.txt",header=TRUE)
data

 s1=0;s2=0;s3=0

 for(i in 1:12){
   if(data$GENDER[i]==F & data$PROMOTE[i]==0){
     s1=s1+1
   } else if (data$GENDER[i]==F & data$PROMOTE[i]==1){
       s2=s2+1
    } else if (data$GENDER[i]==F & data$PROMOTE[i]==2){
        s3=s3+1
      }}

但是 s1,s2,s3 没有被修改。那些有它们的初始值。也没有发生错误。

这里有什么问题?以及计算任务的替代方法。

4

1 回答 1

0

使用plyr

ddply(data[data$GENDER=='F',], .(GENDER),count)

得到:

  GENDER PROMOTE freq
1      F       0    1
2      F       1    4
3      F       2    2

这是你要找的吗?

于 2013-07-01T16:29:10.507 回答