2013-08-30 5 views
1

이번이 처음입니다. 나는 대답을 찾으려고했지만 관련성이있는 것을 찾지 못하는 것 같습니다. 누군가가 도울 수 있기를 바랍니다.각 과목에 대한 시련의 평균을 계산합니다. R

여기에는 데이터 프레임이 있습니다. 각 주체는 6 회의 실험을 수행하며 105 개의 과목이 있습니다.

각 subj에 대해 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 
+3

"평균 '건너 뛰기'가 무슨 뜻인가요? – Roland

+0

당신은 정말로 6을 원하십니까? (단지 피실험자 당 시험 횟수입니다), 또는 주어진 과목에 대한 모든 시험을 원하십니까? –

+0

안녕하세요 롤랜드, 각 하위에 대해 6 회에 걸쳐 평균 건너 뛸 수를 의미했습니다. 예를 들어, subj 0의 경우 6 번의 시도에 대한 'skip'의 평균 수는 6/6 = 1입니다. 그러나 구매 및 건너 뛰기가 혼합 된 다른 경우가 있습니다. :) – user2707619

답변

0

, 당신은 각 과목 choice==skip에 대한 n_gambles의 의미 얻을하고자, 다음이 작동 할 수 있습니다 :

# 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 

이 편집 : 내가 알고있는 것처럼 당신이 skip의 주파수를 원하는 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 
+0

나는 대답이 비슷하다고 생각하지만 결과 'x'는 각 subj에 대한 모든 시도에 대한 평균 건너 뛰기 수보다 도박 수입니다. 이 코드 부분을 설명해 주시겠습니까? 나는 그것이 의미하는 것을 꽤 얻지 못합니까? subj = df [df $ choice == "skip", "subj"]) – user2707619

+0

예,이 코드는 올바른 평균 건너 뛰기 횟수를 제공합니다. 매우 감사합니다. – user2707619

+0

@ user2707619 도움이 되었다면, 답변 및/또는 upvoting으로 수락하는 것을 고려하십시오. – zx8754

2

Y

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

참고 (각 주제를 건너 뛰 = 당신은 여섯 개 시험이 될 것이라고 언급, 그래서 그냥 선택과 관찰의 수를 6으로 나누어 계산 평균) : OU는 plyr 패키지에서 ddply을 사용할 수 있습니다 DF가 당신의 데이터

+0

이것은 정확히 내가 원했던 것입니다. 대단히 감사합니다 !! – user2707619

+0

문제 없습니다. 그것은 당신을 위해 일했기 때문에 다행. – Metrics