나는 조건, 하위, & 지연의 세 가지 그룹화 변수가있는 데이터 세트가 있습니다. 여기에 내 데이터의 단순화 된 버전 (실제 데이터가 더 이상) 여러 변수를 반환하는 복잡한 함수를 사용하여 R에서 Plyr 사용
내가 이러한 데이터 (자세한 내용은 중요하지 않습니다)에 적용하기위한 절차의 복잡한 세트를 가지고있다 나는 다음과 같은 기능을 썼다 세 가지 그룹화 변수로 나눌 때 원하는 것을 성취합니다.sub condition delay later_value choiceRT later_choice primeRT cue 10 SIZE 10 27 1832 1 888 CHILD 10 PAST 5 11 298 0 1635 PANTS 10 SIZE 21 13 456 0 949 CANDY 11 SIZE 120 22 526 1 7963 BOY 11 FUTURE 120 27 561 1 4389 CHILDREN 11 PAST 5 13 561 1 2586 SPRING
: 내가 (indiff, p_intercept, & p_lv) 나는 3 그룹 변수 당 데이터의 각 부분 집합에 적용 ddply 사용하려고getIndiffs <- function(currdelay){ if (mean(currdelay$later_choice) == 1) { indiff = 10.5 p_intercept = "laters" p_lv = "laters" } else if (mean(currdelay$later_choice) == 0) { indiff = 30.5 # no p-val here, code that this was not calculated p_intercept = "nows" p_lv = "nows" } else { F <- factor(currdelay$later_choice) fit <- glm(F~later_value,data=currdelay,family=binomial()) indiff <- -coef(fit)[1]/coef(fit)[2] if (indiff < 10) indiff = 10.5 else if (indiff > 30) indiff = 30.5 p_intercept = round(summary(fit)$coef[, "Pr(>|z|)"][1],3) p_lv = round(summary(fit)$coef[, "Pr(>|z|)"][2], 3) c(indiff,p_intercept,p_lv) }
을에 관심이 세 변수를 반환 나는이 프로그램을 실행할 때
ddply (데이터,. (이하, 상태, 지연), getIndiffs) 그러나
, 나는 오류를 얻을
list_to_dataframe에서이없는이 내가 단지 1 그룹화 변수를 사용할 때 잘 작동하지만, 2를 함께 오류가 발생합니다 +오류 (고해상도, ATTR (.DATA, "split_labels")) : 결과가 동일한 길이 이상하게
또한 3 개의 그룹화 변수로 분할 된 하위 집합 만 포함하는 데이터 프레임으로 데이터 집합을 직접 "시뮬레이션"할 때 내 함수가 올바르게 작동합니다. (참고 : 3 가지 변수를 반환하거나 심지어 하나의 변수 만 반환하는 다른 방법을 시도했습니다.)
기본적으로 다중 함수를 반환하는 함수를 사용하는 방법은 plyr을 사용하는 방법입니다. 변수.
근본적으로 다른 내 문제에 대한 다른 해결책도 환영합니다.
아! 고맙습니다. 어리석은 오타가 생겼을 수도 있지만 유용한 디버깅 팁입니다. –