저는 R이 처음인데 기본 개념에 익숙해지면서 시간을 보내고 나서 첫 번째 함수를 작성하려고합니다. 이 함수를 사용하여 데이터 프레임 목록에 대한 간단한 계산을하고 싶습니다. 내 데이터는 다음과 같이 (I 100 개 이상의 dataframes을 가지고, 그래서 이것은 단순화) 외모 : 내가 원하는 무엇R : 데이터 프레임 목록에 함수를 적용 할 때 오류가 발생했습니다.
d1 <- data.frame(bp1=c(1,2,3),bp2=c(4,5,6), lp=c(4,5,6))
d2 <- data.frame(bp1=c(3,2,1),bp2=c(6,5,4), lp=c(2,1,6))
my.list <- list(d1, d2)
은 10^-1 열을 받아 3 열에서 값을 곱하는 것입니다. 그런 다음 첫 번째 열을 기준으로 결과를 집계합니다. 내 기능은 다음과 같습니다
bp_calc <- function(x) {
bp1 <- x[[i]][1]
lp <- x[[i]][3]
10^-lp * lp -> x[[i]]$p_logp
aggregate(x[[i]]$p_logp ~ bp1, data = x, sum) -> result
return(result)
}
내 데이터 기능을 사용하려면, 내가 사용 :
lapply(my.list,bp_calc)
그러나,이 오류를 던지고있다 : 오류 .subset2에 (X, I, 정확한 = 정확한) : 범위 밖의 첨자. 나는 물론이 포럼에 google과 seaching을 시도했지만, 내가 뭘 잘못하고 있는지 이해할 수는 없다. 도와 주시면 감사하겠습니다.
어디'놀이에 와서 i' 않습니다
은 당신이 원하는 것은 이것이다. 최소한 bp1 <- x [[i]] [1];을 바꿔서 실행할 수 있습니다. lp <- x [[i]] [3]'~'bp1 <- x [, 1]; lp <- x [, 3]'그리고 다른 [[i]]를 제거하십시오 – rawr
@rawr에게 고마워요! 그것은 아주 잘 작동합니다! – lpoulsen