R:如何在数据框中引用名称组合之间的相应列?
R: how can I reference the corresponding column between a combination of names within a dataframe?
我设法从一组数据中对 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)
但使用组合中的名称作为对数据集的引用
首先,不要附加您的数据。使用 data
参数代替 lm
。
让我们构建公式:
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 进行了不同的组合,以便在数据集中获得成对的名称。我想在使用 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)
但使用组合中的名称作为对数据集的引用
首先,不要附加您的数据。使用 data
参数代替 lm
。
让我们构建公式:
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