我有这个数据框:
dput(df)
structure(list(Users = c(200L, 305L), Transactions = c(460, 702.4
), Workload = c(100, 109.9), HeapUsage = c(25, 35.83)), .Names = c("Users",
"Transactions", "Workload", "HeapUsage"), row.names = 1:2, class = "data.frame")
Sniny中的:
我想建立一个像这样的lm模型:
lm.model <- reactive({
df <- data_set()
if (!is.null(df)){
xv <- input$xaxisGrp
yv <- input$yaxisGrp
print(xv)
print(yv)
if (!is.null(xv) & !is.null(yv)){
if (sum(xv %in% names(df))>0){ # supress error when changing files
lm.model <- lm(as.formula(paste(yv, '~', xv)), data = df)
return(lm.model)
}
}
}
})
这只假设xv只有一个变量。如果xv在Transactions,Workload,Users等中有多个变量,如何更改此行?
例如,它需要这样做:
lm(data=df, HeapUsage~Transactions+Workload+Users)
这只是一个示例xv变量可能会根据上传的数据和列名称而改变。 xv vector是一个向量,可以有一个或多个变量。
答案 0 :(得分:0)
以下是iris
数据集
xv <- colnames(iris)[-c(1,5)]
lm.model <- lm(data = iris, as.formula(paste('Sepal.Length', '~', paste(xv, collapse = '+'))))