lapply 루프 내에서 행렬을 채우는 데 어려움이 있습니다.매트릭스에 행을 추가하는 Lapply
내 데이터에는 135 개의 지형 공간 점 목록이 있습니다. 루프에서 3 개의 다른 반경 내의 풍경을 기반으로 다양한 통계를 계산합니다. 내가하고 싶은 것은 135 사이트와 3 반지름의 각 조합을 순환 한 다음 빈, 미리 준비된 행렬의 각 행을 (사이트, 반경, metric1, metric2, metric3)로 채 웁니다.
나는 내가 달리고있는 문제를 복제하는 간단한 스크립트를 만들었습니다. 나는 아직 코드
# Generate empty matrix:
mymatrix <- matrix(,nrow=18, ncol=5)
# A vector with length of x (in my data this is the list of 135 sites):
a <- 1:6
#These sets will represent my metrics
b <- rnorm(6, 5, 10)
c <- rnorm(6, 100, 20)
d <- rnorm(6, 20, 20)
# Radius vector:
rad <- c(100,200,300)
# The loop: lapply for site within lapply for radius
lapply(1:3,function(r){
lapply(1:6,function(x){
row.number <- (r-1)*6+x
tmpvector <- c(a[x], b[x], c[x], d[x], rad[r])
mymatrix[row.number,] <- tmpvector
})
})
View(mymatrix)
가 지금처럼 작성, 결과 행렬은 여전히 비어 얼마나 ... 파악하지 않은
here 같이 나를
do.call(rbind, absdf)
명령을 적용하는 것이 가능합니다. 제가
mymatrix <- matrix(,nrow=18, ncol=5)
a <- 1:6
b <- rnorm(6, 5, 10)
c <- rnorm(6, 100, 20)
d <- rnorm(6, 20, 20)
rad <- c(100,200,300)
for (r in 1:3) {
for (x in 1:6) {
row.number <- (r-1)*6+x
tmpvector <- c(a[x], b[x], c[x], d[x], rad[r])
mymatrix[row.number,] <- tmpvector
}
}
View(mymatrix)
루프
으로하는 간단한 예를 쓰는 경우 I 예상대로다음 행렬 값으로 채운다. 나는 간단한 실수를하는 경우 사과 : 나는이 루프에 아주 새롭다!
NB이 데이터의 연속 목록을 만드는데도 열어 두었습니다. 그러면이 데이터를보다 유용한 형식으로 변환 할 수 있습니다.
그것은 lapply 행렬을 만들 필요가 없습니다 것은 사실이다 내보기에서. 그러나 lapply는 데이터 프레임이나 매트릭스로 구성해야하는 출력을 생성하는 전체 스크립트에서 반복되는 지형 공간 처리 작업에 필요합니다. 솔직하게 말하면 목록을 만드는 것만으로도 충분할 것입니다. 그 목록을보다 유용한 형식으로 변환 할 수 있기 때문입니다. 귀하의 제안에 감사드립니다, @ 에드윈! – Nematode