什么是错的&如何计算以下程序

时间:2013-07-01 14:01:29

标签: r loops for-loop if-statement

以下是数据框:

  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)PROMOTE == 0; (b)PROMOTE == 1; (c)PROMOTE == 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尚未修改。那些有他们的初始价值。也没有发生任何错误。

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

1 个答案:

答案 0 :(得分:0)

使用plyr

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

得到:

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

这是你在找什么?