1

ここにデータフレームがあります。各被験者は 6 回の試行を行い、105 人の被験者がいます。

各サブジェクトの 6 回の試行の「スキップ」の平均を見つけたいです。

どうすれば始められますか?

>     subj entropy n_gambles trial choice
1      0    high         2     0   skip
2      0    high         2     1   skip
3      0    high         2     2   skip
4      0    high         2     3   skip
5      0    high         2     4   skip
6      0    high         2     5   skip
7      1    high        32     0    buy
8      1    high        32     1    buy
9      1    high        32     2    buy
10     1    high        32     3    buy
11     1    high        32     4    buy
12     1    high        32     5    buy
4

2 に答える 2

2

plyrパッケージから使用できddplyます:(6回の試行があると述べたので、各被験者のchoice=skipだけで観測数を6で割って平均を計算します)

library(plyr)
ddply(df,.(subj),summarise,mymean=(length(which(choice=="skip")))/6)
  subj mymean
1    0      1
2    1      0

注:dfはあなたのデータです

于 2013-08-30T13:44:40.463 に答える
0

私が推測しなければならない場合、あなたはn_gamblesの各被験者の平均を取得するつもりです 、choice==skipこれはうまくいくかもしれません:

# Data
df<- read.table(text="subj  entropy n_gambles   trial   choice
0   high    2   0   skip
0   high    2   1   skip
0   high    2   2   skip
0   high    2   3   skip
0   high    2   4   skip
0   high    2   5   skip
1   high    32  0   buy
1   high    32  1   buy
1   high    32  2   buy
1   high    32  3   buy
1   high    32  4   buy
1   high    32  5   buy",header=T)

# Get mean
aggregate(df[df$choice == "skip","n_gambles"],
          list(subj=df[df$choice == "skip","subj"]),
          mean)

# Output
#  subj x
# 1 0 2

編集:私が理解しているように、skipperの頻度が必要です:これをsubj試してください:

# Get counts
result <- as.data.frame(table(df$subj,df$choice))
colnames(result) <- c("subj","choice","Freq")
# Subset for "skip" and divide by 6
result <- result[ result$choice == "skip",]
result$Freq <- result$Freq/6
于 2013-08-30T12:55:50.997 に答える