您可以使用以下命令在R控制台中轻松打印出rpart树结果。
fit <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
print(fit)
打印出来:
n = 81
node),split,n,loss,yval,(yprob) *表示终端节点
1)根81 17缺席(0.79012346 0.20987654)2)开始&gt; = 8.5 62 6 缺席(0.90322581 0.09677419)
4)开始&gt; = 14.5 29 0缺席(1.00000000 0.00000000)* 5)开始&lt; 14.5 33 6缺席(0.81818182 0.18181818)
10)年龄&lt; 55 12 0缺席(1.00000000 0.00000000)* 11)年龄&gt; = 55 21 6缺席(0.71428571 0.28571429)
22)年龄&gt; = 111 14 2缺席(0.85714286 0.14285714)* 23)年龄&lt; 111 7 3现在(0.42857143 0.57142857)* 3)开始&lt; 8.5 19 8现在(0.42105263 0.57894737)*
但是,这在Rshiny textOutput中不起作用 请参阅以下Rshiny代码:
ui.r
library(shiny)
# Define UI for application that draws a histogram
shinyUI(fluidPage(
# Application title
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot"),
textOutput("distText")
)
)
)
server.r
library(shiny)
library(rpart)
# Define server logic required to draw a histogram
shinyServer(function(input, output) {
output$distText <- renderText({
fit <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
print(fit)
})
})
如果我运行上述闪亮的APP,则会出现以下错误:
cat(list(...),file,sep,fill,labels,append)出错:
处理
参数1(类型&#39;列表&#39;)不能由&#39; cat&#39;
答案 0 :(得分:2)
您可以使用capture.output(fit)
来获取print函数输出的字符串。
您可能还想将textOutput
中的ui.R
更改为htmlOutput
。这允许您具有多行文本输出。
代码如下: server.R
library(shiny)
library(rpart)
# Define server logic required to draw a histogram
shinyServer(function(input, output) {
output$distText <- renderText({
fit <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
paste(capture.output(fit),collapse="<br>")
})
})
ui.R
library(shiny)
# Define UI for application that draws a histogram
shinyUI(fluidPage(
# Application title
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot"),
htmlOutput("distText")
)
)
)