2014-12-11 2 views
0

데이터 세트에 147 개의 열이 있으며 각 열에는 7 개의 행이 있습니다. 각 열을 사용하여 회귀 분석을 실행하고 싶습니다.루프를 사용하여 많은 회귀를 즉시 실행하십시오.

fit = nls(DD$X1, ~ (1/(1+k*xValues)),start=list(k=k)) 

설명 :

DD 데이터 집합이다 :이 레벨 등 "X1", "X2"

xValues = c(1,2,7,14,30,180,720) 

k있는) 데이터 프레임의는 난 파라미터이고 결정하려고 시도)

하지만 루프에서 수행하고 싶습니다. DD $ 2에서 DD $ 147까지. 길을 따라 나는 적합성의 가치를 저장하고 싶습니다.

저는 r이 처음이에요. 누군가가이 방법을 제안 할 수 있었습니까? 많은 감사합니다.

+0

"list"변수 [fit [[j]] <- nls (DD [[j]] ....)'또는 매번 같은 결과를 반복 할 때마다 루프를 작성하십시오 '? sapply'를 사용합니다. 'for' 루프를 작성할 수 없다면 모든 CRAN 미러에서 사용할 수있는'R-intro' PDF 문서를 읽으십시오. –

+0

이것을 위해서'data.table'을 사용할 수도 있습니다. 뭔가'라이브러리 (data.table); (start) = list (k = k)))]'는 다음과 같이 표현할 수있다 : Res <- setDT (DD) [, list (lapply (.SD, function (x) nls (x/(1 + k * xValues) 결과를 저장하고 그것을보기 위해서는'Res [, lapply (V1, print)]' –

답변

0

여기 BodyFat 데이터 세트를 사용하고 있습니다. 데이터 세트 파일 이름을 바꾸고 응답 및 설명 변수에 적절한 열을 지정해야합니다.

formu <-function(a,lis) 
{ 
k="" 
k= paste(a,'~',sep="") 
h=do.call("paste", c(lis, sep = "+")) 
formula1= paste(k,h,sep="") 
return(formula1) 
} 

results=list() 
dat = read.table("BodyFatPercentage.txt",header=TRUE) 
g=names(dat) 
target=names(dat)[2:2] 
print(target) 
expla=names(dat)[3:16] 
for(i in 1:length(expla)) 
{ 
formula1=formu(target,list(expla[i])) 
model1=lm(formula1,dat) 
print(model1) 
results[i] = model1 
} 
print results 
관련 문제