我有一个获取数据帧的函数,第一列必须为Y,用户选择哪一列将为X。我需要在同一data.frame中运行多个线性模型(查找哪个lm具有最佳结果给我的用户)。
使用mtcars数据集,我仅拥有一个线性模型:
results_LM <- function(data, var) {
fm1 <- as.formula(paste(colnames(data)[1], "~", var))
lm1(fm, data = data)
return(lm1)
}
fit <- results_LM(mtcars, "disp")
对于要测试的每个线性模型,我都会做同样的事情(并存储在以后要使用的最终列表中):
results_LM <- function(data, var) {
fm1 <- as.formula(paste(colnames(data)[1], "~", var))
lm1(fm, data = data)
fm2 <- as.formula(paste(colnames(data)[1], "~", var, "+ I(", var, "^2)"))
lm2(fm, data = data)
all_lm <- list("FirstLM" = lm1, "SeconLM" = lm2)
return(all_lm)
}
这对于fm3,lm3 ... fm99,lm 99
这可以工作,但是我想这是一种更好的方法
关于如何在同一数据框中运行多个线性模型的任何想法?
答案 0 :(得分:0)
阿尔里亚解决了,看着这个post 我将所有模型放入类似的列表中,并用lapply运行所有模型
public class SellRepository {
public SellRepository(Application application) {
}
public List<LambdaSellRequestClass> getSellItemList(int userId) throws ExecutionException, InterruptedException {
return new SellRepository.GetSellItemListAsync(SellRepository.this).execute(userId).get();
}
private static class GetSellItemListAsync extends AsyncTask<Integer, Void, List<LambdaSellRequestClass>> {
List<LambdaSellRequestClass> list = new ArrayList<>();
public GetSellItemListAsync() {
}
@Override
protected List<LambdaSellRequestClass> doInBackground(Integer... integers) {
final int userID = integers[0];
list =
lambdaFunctionsCalls.getSellItemByUser_lambda(requestClass).getSellItems();
return list;
}
}