2014-09-21 5 views
0

'홍채'데이터 세트와 거의 동일한 식물 데이터가 있습니다. 정규 분포를 사용하여 새 데이터를 시뮬레이션하고 싶습니다. 따라서 홍채 데이터 세트의 각 변수 ~ 종에 대해 정규 분포에서 10 개의 새로운 관측치를 만듭니다. 기본적으로 이전 프레임과 동일한 구조로 새 데이터 프레임을 만들지 만 시뮬레이션 된 데이터를 포함합니다. 다음 코드를 시작해야한다고 생각합니다 (데이터 프레임이 잘못된 형식이라고 생각합니다). 그러나 실행되지 않습니다.ddply를 사용하여 데이터 프레임에서 데이터 시뮬레이션

ddply(iris, c("Species"), function(x) data.frame(rnorm(n=10, mean=mean(x), sd=sd(x)))) 

rnorm이 원자 벡터를 반환하므로 ddply가이를 처리 할 수 ​​있어야합니다.

답변

1

ddply은 Species로 행의 하위 집합을 지정하지만 하위 설정 data.frame의 열을 반복하는 기능은 수행하지 않습니다. 당신은 당신을 위해리스트 나 data.frame을 반환하는 norm()을 얻을 수 없습니다; 당신은 형성을 도울 필요가있을 것이다. 방법에 대해

ddply(iris, c("Species"), function(x) { 
    data.frame(lapply(x[,1:4], function(y) rnorm(10, mean(y), sd(y)))) 
}) 

여기서 각 그룹의 처음 4 개 열에 대해 새 값을 계산합니다.

+0

완벽하게 작동합니다! 감사! – TBP

관련 문제