我想使用另一个变量的公式为数据框创建一个新列.
示例:
我有一个数据集"aa"是;
x y
2 3
4 5
6 7
Run Code Online (Sandbox Code Playgroud)
我的R代码是;
>bb <- "x+y-2"
>attach(aa)
>aa$z<- bb
>detach(aa)
Run Code Online (Sandbox Code Playgroud)
结果是;
x y z
2 3 x+y-2
4 5 x+y-2
6 7 x+y-2
Run Code Online (Sandbox Code Playgroud)
但我想这样;
x y z
2 3 3
4 5 7
6 7 11
Run Code Online (Sandbox Code Playgroud)
请你帮助我好吗..
尝试创建如下的数据框;
X Y
20 30
Run Code Online (Sandbox Code Playgroud)
使用textInput创建数据框.
但是在文本区域中输入的值未正确分配给数据框.
请你帮助我好吗?
ui.R
library(shiny)
shinyUI(pageWithSidebar(
headerPanel( "", ""),
sidebarPanel(
wellPanel(
textInput('datavalues', "variable values",""),
actionButton("submit","Apply")
)
),
mainPanel(
verbatimTextOutput('datatable')
)
))
Run Code Online (Sandbox Code Playgroud)
server.R
library(shiny)
shinyServer(function(input,output,session){
data1= reactive({
if(input$submit!=0){
isolate({
data.frame(paste(input$datavalues))
})
}
})
output$datatable<-renderPrint(function(){
if(!is.null(data1())){
d<-data1()
print(d)
}
})
})
Run Code Online (Sandbox Code Playgroud) 我正在为使用Shiny创建用于简单线性回归的应用程序。我想将变量名自动传递给模型。我尝试了来自用户的可变输入。server.R中的代码是
lm(paste(input$dependent," ~ ",input$independent), data=data1())
Run Code Online (Sandbox Code Playgroud)
和
lm(paste0(input$dependent) ~ paste0(input$independent), data=data1())
Run Code Online (Sandbox Code Playgroud)
并且还尝试了以下语法;
lm(names(data1()[2]) ~ names(data1()[1]) , data=data1())
Run Code Online (Sandbox Code Playgroud)
这些都不起作用...
如何将变量名传递给模型?
提前致谢...