R:如何在数据框中的名称组合之间引用相应的列

  • 本文关键字:之间 组合 引用 数据 r mapply combn
  • 更新时间 :
  • 英文 :


我设法从一组数据中制作了2个组合,以便在数据集中获得名称对。当我使用mapply时,我想拥有一个函数,以便可以使用每对中的每个名称来引用其相应的数据集。现在我有:

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)

但使用梳子中的名称作为数据集的引用

首先,不要附上数据。改用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  

最新更新