2016-06-15 1 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) 

が、データセットへの参照としてcombnから名前を使用して

答えて

2

まず第一に、あなたのデータを添付しないでください。代わりにlmdata引数を使用してください。

のは、式を構築してみましょう:

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

次にモデル

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

我々はその後、いくつかの結果を調べることができます

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

'combn'は' FUN = '引数を持っています2つのFUN = function(x)lm(paste(x、collapse = "〜")、data = iris)、simplify = FALSE) 'を使用すると、 laを必要とするter。 – thelatemail

+0

ありがとうございました。 lm()関数はほんの始まりでした。最終的には、より複雑な計算を行い、lm()の係数を他の計算に使用したいと思います。 –

関連する問題