2017-12-19 21 views
0

주어진 평균 및 표준 편차를 기반으로 다양한 예제 실행으로 열을 채우려고합니다. 내가 지금있는 것은 : r 데이터 테이블의 벡터화 된 테이블 작업

ave std scenario1 scenario2 scenario3 
20 0.1 20.2377 20.2377 20.2377 
    3 1.0 2.6497 2.6497 2.6497 

그래서 분명히 하나의 벡터에 그것의 실행 rnorm는, 각 열에 대해 같은 벡터를 반복 : 테이블 결과

A = data.table(ave = c(20, 3), std = c(.1, 1)) 
A[, paste0("scenario", c(1:3)) := rnorm(2, ave, std)] 

. 각 열을 다시 계산하려면 어떻게합니까? 나는

matrix(rnorm(6, ave, std), 2, 3) 

또는 transpose(lapply(...))를 사용하여 같은 것들을 시도했지만 둘 다 일 것 같다했습니다.

답변

0

당신은 각 열에 대한 rnorm를 호출 할 수

A[, paste0("scenario", c(1:3)) := lapply(1:3, function(x) rnorm(2, ave, std))] 
0

우리는 사용할 수 replicate

A[, paste0("scenario",c(1:3)) := replicate(3, rnorm(2, ave, std), simplify = FALSE)]