将公式应用于R中数据帧的每一列

将公式应用于R中数据帧的每一列,r,R,我需要对数据框中名为mydf的所有列应用线性回归公式。mydf中有数千列,因此在公式中不可能指示每一列。有两列,weight和age,这两列在我要应用此公式的所有其他列的公式中保持不变 第一列(列bmd)的公式为 及 试试这个: apply(mydf[ ,-c(4:5)], 2, function(x) lm(x ~ mydf$weight + mydf$age)$fitted.values) 编辑:添加缺少的逗号尝试以下操作: apply(mydf[ ,-c(4:5)], 2, functi

我需要对数据框中名为
mydf
的所有列应用线性回归公式。mydf中有数千列,因此在公式中不可能指示每一列。有两列,
weight
age
,这两列在我要应用此公式的所有其他列的公式中保持不变

第一列(列
bmd
)的公式为

试试这个:

apply(mydf[ ,-c(4:5)], 2, function(x) lm(x ~ mydf$weight + mydf$age)$fitted.values)
编辑:添加缺少的逗号尝试以下操作:

apply(mydf[ ,-c(4:5)], 2, function(x) lm(x ~ mydf$weight + mydf$age)$fitted.values)
编辑:添加缺少的逗号一种方法:

# get names of all dependent variables
dependents <- names(df[, -which(names(df) %in% c("weight", "age"))]

# build a little function
myFit <- function(depName) {
  fit1 <- lm(as.formula(paste(depName, "~ weight + age")), data=mydf)
  return(fit1$fitted.values)
}

# sapply them
fittedValues <- sapply(dependents, myFit)
#获取所有因变量的名称
家属一种方法:

# get names of all dependent variables
dependents <- names(df[, -which(names(df) %in% c("weight", "age"))]

# build a little function
myFit <- function(depName) {
  fit1 <- lm(as.formula(paste(depName, "~ weight + age")), data=mydf)
  return(fit1$fitted.values)
}

# sapply them
fittedValues <- sapply(dependents, myFit)
#获取所有因变量的名称

是否要用回归的拟合值替换其他列的当前值?@Parfait是,正确。但我不知道如何更有效地执行。所以你想用回归拟合值替换其他列的当前值吗?@Parfait是的,这是正确的。但我不知道如何更有效地进行。OP要求提供拟合值。可能需要添加
$fitted.values
。OP询问fitted值。可能需要添加
$fitted.values
apply(mydf[ ,-c(4:5)], 2, function(x) lm(x ~ mydf$weight + mydf$age)$fitted.values)
# get names of all dependent variables
dependents <- names(df[, -which(names(df) %in% c("weight", "age"))]

# build a little function
myFit <- function(depName) {
  fit1 <- lm(as.formula(paste(depName, "~ weight + age")), data=mydf)
  return(fit1$fitted.values)
}

# sapply them
fittedValues <- sapply(dependents, myFit)