2017-05-04 2 views
0

우선 관심과 시간에 감사드립니다. 내 질문 (사용 R) : 가 yvar을 예측하기 위해, 나는 736에서 30 따라서올가미 이후 : 나머지 데이터를 새로운 데이터 프레임으로 저장하십시오 (R 사용)

lasso.mod =glmnet(x,y,alpha=1) 
cv.out =cv.glmnet (x,y,alpha=1) 
lasso.bestlam =cv.out$lambda.min 
tmp_coef = coef(cv.out,s=lasso.bestlam) 

varnames = data.frame(name = [email protected][[1]][[email protected]]) 
mylist = list(name = [email protected][[1]][[email protected]]) 

, 나는이 데이터 프레임으로 남아있는 변수 이름과에 xvariables의 집합을 감소 올가미 회귀를 실행 한 또한 목록으로. 나머지 30 개의 변수와 그 안에있는 관측치가있는 새 데이터 프레임을 만드는 것이 어떻게 가능합니까? 다시 말해, 737 개의 변수가 아니라 31 개만 포함 된 원래 데이터의 하위 집합을 얻으려면 어떻게해야합니까?

나는 그러나 나는 2 시간 이상하고 일한 적이 ...

행복을 빌며, 토마스 지출되었습니다이 아주 쉽게해야한다고 생각

+0

이 표준 열 선택 문제가 될 것으로 보인다. 이전 데이터 프레임을 가져 와서 목록의 열을 벡터로 선택하십시오. 예 : 'mtcars [, c ("mpg", "cyl")]'는'mtcars' 데이터 세트에서이 두 열을 선택합니다. – coffeinjunky

+0

이 사이트에서 열 선택 도움말을 검색하면 몇 가지 답변을 얻을 수 있습니다. – BLT

+0

문제는 올가미 이후의 변수가 변경 될 수 있다는 것입니다 (올가미를 실행하기 전에 수행 할 다른 작업에 따라 다름). 따라서 저는 매번 30 개의 변수를 직접 작성하고 싶지는 않습니다. 그러나 시간과 배려에 감사드립니다. –

답변

0

귀하의 [email protected][[1]][[email protected]] 변수가 남아있는 변수의 이름을 포함,뿐만 아니라 첫 번째 항목으로 "(절편)"가 포함 된 데이터는하지만,이 트릭을 할해야합니다. 당신이 -1]으로 폐기하는 경우에는 열을 추출 할 수 있습니다 :

x <- as.data.frame(x[, [email protected][[1]][[email protected]][-1]]) 

더 간단

, 당신은 직접 [email protected]에 인덱스를 사용할 수 있습니다

x <- as.data.frame(x[, [email protected][-1]]) 
+0

대단히 감사합니다! –

관련 문제