В момента проучвам задача за съпоставяне с извадка при маймуни. Искам да преценя колко често е избран определен стимул, независимо от правилността на избора.
За да направя това, имам рамка с данни df
с 6288 реда и 6 колони („Маймуна“, „Сесия“, „Проба“, „Съвпадение“, „Фолио“, „Успех“), от които само последните три са важни сега .
Данните в df$Match
и df$Foil
са имената на стимулите (низ), а df$Success
е двоичен. df$Match
и df$Foil
са съставени от 65 различни имена на стимули, които включих във вектор Match.Foil
.
Сега искам да преброя колко често се щраква върху снимка (част от вектора Match.Foil
) във всичките 6288 опита. Тоест всеки път, когато името е част от df$Match
& df$Success == "1"
ИЛИ когато df$Foil
& df$Success == "0"
.
Опитах се да създам вектор с броя кликвания за всяка част от Match.Foil
по този начин:
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)
}
И така, както виждате, исках да използвам функциите Pic.clicked + 1
и Pic.clicked + 0
като връщания, ако изразът е TRUE
или FALSE
. Не работи и ми дава грешката:
В Pic.clicked[i] = ifelse((df$Match == Match.Foil[i] & ... : броят на елементите за замяна не е кратно на дължината на замяната
Някой има ли идея как да изградя подходящ брояч? Мислех да използвам switch
, но нямам опит с тази функция и изглежда не работи, както ми трябва. Опитах също да го стартирам за 6288 цикъла, но това дава същото предупреждение.
Pic.clicked[i]+1
не е функция, а числова стойност. - person Aaron left Stack Overflow   schedule 28.10.2016