현재 원숭이와 일치하는 샘플 작업을 연구 중입니다. 선택의 정확성에 관계없이 특정 자극이 얼마나 자주 선택되었는지 평가하고 싶습니다."R"의 ifelse에서 함수를 반환 인수로 사용할 수 있습니까?
이렇게하려면 6288 행 6 열 ("원숭이", "세션", "샘플", "일치", "호일", "성공")의 데이터 프레임 df
이 있습니다. 세 가지가 중요합니다.
데이터는 df$Match
및 df$Foil
은 자극 (문자열)의 이름이고 df$Success
은 바이너리입니다. df$Match
및 df$Foil
은 65 개의 별개의 자극 이름으로 구성되어 있습니다.이 자극 이름은 벡터 Match.Foil
에 포함되어 있습니다.
이제 모든 6288 번의 시도에서 그림 (벡터 Match.Foil
의 일부)이 클릭 된 빈도를 계산하고 싶습니다. 즉, 언제든지 이름은 df$Match
& 또는 df$Foil
& df$Success == "0"
일 때 일부가됩니다. 당신이 나는 경우가 복귀 기능 Pic.clicked + 1
및 Pic.clicked + 0
을 사용하고 싶었 보는 바와 같이,
Pic.clicked= vector(mode="numeric", length= length(Match.Foil))
for (i in 1:length(Match.Foil)){
Pic.clicked[i] = ifelse(
df$Match == Match.Foil[i] & df$Success == "1")|
(df$Foil== Match.Foil[i] & df$Success == "0"),
Pic.clicked[i] +1,
Pic.clicked[i] +0)
}
그래서 :
는이 같은Match.Foil
의 각 부분에 대한 클릭 횟수와 벡터를 구축하려 성명서는
TRUE
또는
FALSE
입니다. 작동하지 않으며 오류가 발생합니다.
In Pic.clicked[i] = ifelse((df$Match == Match.Foil[i] & ... : number of items to replace is not a multiple of replacement length
아무도 아이디어가 없나요? 적절한 카운터를 만드는 방법은 무엇입니까? 나는 switch
을 사용하는 것에 대해 생각했지만 그 기능에 대한 경험이 없으며 필요로하는 것처럼 작동하지 않는 것 같습니다. 또한 6288 루프를 실행 해 보았지만 동일한 경고가 나타납니다.
을; 짧은 재현 가능한 예가 매우 도움이 될 것입니다. 또한 함수를 반환하려고한다고 말하는 것이 명확하지 않습니다. 'Pic.clicked [i] + 1'은 함수가 아니며 숫자 값입니다. – Aaron