2016-06-15 8 views
0

데이터 세트에서 2 쌍의 이름 조합을 얻을 수 있도록 여러 조합의 데이터 세트를 만들었습니다. 내가 각각의 쌍의 각각의 이름을 사용하여 해당 데이터 세트를 참조 할 수 있도록 mapply을 사용할 때 함수를 갖고 싶습니다. 지금 내가 가진 : 즉R : 데이터 프레임 내에서 이름의 조합 사이에서 해당 열을 어떻게 참조 할 수 있습니까?

myPairs <- combn(names(iris[1:4]), 2) 

f <- function(x,y) 
{ 
#Want to make a lm(x ~ y) and other potential calculations 
} 

a <- myPairs[1,] 
b <- myPairs[2,] 

mapply(f, a, b) 

를, 내가 지금처럼 계산할 :

data <- iris 
attach(data) 
lm(Sepal.Length ~ Sepal.Width) 
lm(Sepal.Length ~ Petal.Length) 
lm(Sepal.Length ~ Petal.Width) 
lm(Sepal.Width ~ Petal.Length) 
lm(Petal.Length ~ Petal.Width) 

하지만 데이터 세트

답변

2

우선을 기준으로 combn의 이름을 사용하여, 데이터를 첨부하지 마십시오. 대신 lmdata 인수를 사용하십시오.

myModels[[1]] 
# Call: 
# lm(formula = x, data = iris) 
# 
# Coefficients: 
# (Intercept) Sepal.Width 
#  6.5262  -0.2234 
+2

'combn'는'FUN ='인수를 가지고 : 그런 다음 우리는 다음 검사 할 수

myModels = lapply(myFormula, function(x) lm(formula = x, data = iris)) 

모델 어떤 결과를 만들어

myFormula = apply(myPairs, MARGIN = 2, FUN = paste, collapse = " ~ ") 

:

는 이제 수식을 구축하자 또한,''combn (이름 (홍채 [1 : 4]), 2, FUN = 함수 (x) (붙여 넣기 (x, 붕괴 = "~"), 데이터 = 홍채), 단순화 = FALSE)' la 'lapply'할 필요가있다. ter. – thelatemail

+0

감사합니다. lm() 함수는 시작에 불과했습니다. 결국, 좀 더 복잡한 계산을하고 lm()의 계수를 사용하여 다른 계산에 사용하고 싶습니다. –