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 に答える