2017-12-15 2 views
1

、私は好きmy_dataデータ構造を持っている場合:表(は)カウントを与えているオフずつRで

participant var score 
` 
1   a ... 
      b ... 
      c ... 
      a ... 
2   b ... 
      a ... 
      c ... 
      c ... 
3   b ... 
      c ... 
      a ... 
      b ... 

を、私はを通じて、VARの周波数をカウントする関数を書きますテーブル(my_dataの$の参加者、my_dataの$ varが)、結果は次のとおりです。

a b c 
1 1 0 0 
2 0 1 0 
3 0 1 0 

それはこれがreasoために起こる

a b c 
1 2 1 1 
2 1 1 2 
3 1 2 1 

する必要がありながら、 nは関数が 'participant'が空でない線のみを選択することを示しています。 同じ参加者に空行を関連付けるようにソフトウェアに指示するデフォルトの方法はありますか?

+4

再現可能なコードとデータを掲載してください。そうしないと誰も助けにならない。 table()は常にうまく動きました。いくつかのエントリが 'NA'であるかどうか確認し、そうであれば' table(...、useNA = 'ifany' ...) 'を使用してください。 – smci

+0

空の値を入力してください。 'zoo :: na.locf'または同様の方法を使って、空白を最後の観測値に置き換えます。 – Gregor

答えて

1

あなたは動物園のパッケージからna.locfを使用することができます。

# sample data 
my_data = data.frame(participant=c("1","","","2","",""),var = c("a","a","b","a","a","c"),stringsAsFactors = F) 

library(zoo) 
# first, replace empty elements with NA, then use na.locf 
my_data$participant[nchar(my_data$participant)==0]=NA 
my_data$participant = na.locf(my_data$participant) 
table(my_data$participant, my_data$var) 

出力:

a b c 
    1 2 1 0 
    2 2 0 1 

は、この情報がお役に立てば幸い!

関連する問題