小编wsd*_*sda的帖子

一次将多个列强制转换为因子

我有一个如下所示的示例数据框:

data <- data.frame(matrix(sample(1:40), 4, 10, dimnames = list(1:4, LETTERS[1:10])))
Run Code Online (Sandbox Code Playgroud)

我想知道如何选择多个列并将它们一起转换为因子.我通常会这样做data$A = as.factor(data$A).但是当数据框非常大并且包含大量列时,这种方式将非常耗时.有谁知道更好的方法吗?

r dataframe r-factor

58
推荐指数
6
解决办法
7万
查看次数

R:如何在ggvis闪亮应用中更改特定范围的绘图背景颜色

我有一个简单的闪亮应用程序,如下所示,你可以运行它.这些图是由ggvis用户创建的,用户可以从中选择学生姓名inputSelect.在图中,我想要更改特定分数范围内的背景颜色.例如,在每个图中,分数高于80或低于50的绘图背景颜色用蓝色突出显示(参见附图).我试图添加图层并使用绘制矩形到情节layer_rects(),但问题是如果选择不同的学生,x轴的值会改变.任何人之前做过这个或任何想法?如果我只想要那个得分范围内的积分弹出,是否有可能?非常感谢!

示例图片

  library(shiny)
    library(ggvis)

df <- data.frame(Student = c("a","a","a","a","a","b","b","b","b","b","c","c","c","c"),
                 year = c(seq(2001,2005,1),seq(2010,2014,1),seq(2012,2015,1)),
                 score = runif(14,min = 50,max = 100), stringsAsFactors=F)

ui = (fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("stu","Choose Student",
                  choice = unique(df$Student))
    ),
    mainPanel(ggvisOutput("plot"))
    )
  )
)

server = function(input,output,session){   

  dataInput = reactive({
    gg = df[which(df$Student == input$stu),]
  })

  vis = reactive({
    data = dataInput()
    data %>%
      ggvis(x = ~year, y = ~score) %>%
      scale_numeric("y",domain = c(40,120))%>%
      layer_lines()
  })

  vis %>% bind_shiny("plot")
}

runApp(list(ui = …
Run Code Online (Sandbox Code Playgroud)

r shiny ggvis

6
推荐指数
1
解决办法
416
查看次数

基于 R 闪亮条件面板中的单选按钮切换绘图

我正在尝试创建一个带有 ggvis 绘图和单选按钮的闪亮应用程序。我有 ggvis 创建的三个图。用户可以根据他们选择的单选选项切换不同的绘图。

例如,如果用户选择A,则用户界面上仅显示plot1。如果用户选择 B,则绘图切换到绘图 2。

我的问题是我不知道如何将图与单选按钮连接起来。我已经挣扎了几个小时了。非常感谢你的帮助!我下面有一些示例代码。

df <- data.frame(Student = c("a","a","a","a","a","b","b","b","b","b","c","c","c","c"),
             year = c(seq(2001,2005,1),seq(2003,2007,1),seq(2002,2005,1)),
             col1 = runif(14,min = 50,max = 100),
             col2 = runif(14,min = 120,max = 200),
             col3 = runif(14,min = 60,max = 200),stringsAsFactors=F)
Run Code Online (Sandbox Code Playgroud) 代码:
ui = (fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("stu","Choose Student",
                  choice = unique(df$Student)),
      radioButtons("col","Switch Plot",
                   choices = c("A", "B","C"),
                   selected = "A")
    ),
    mainPanel(ggvisOutput("plot1")
    ))
))

server = function(input,output,session){   
dataInput = reactive({
  gg = df[which(df$Student == input$stu),]
})

vis1 = reactive({
  data = dataInput() …
Run Code Online (Sandbox Code Playgroud)

radio-button conditional-statements shiny ggvis

5
推荐指数
1
解决办法
7971
查看次数

鼠标悬停在轴标签d3.js javascript上的事件

有没有人知道是否有可能在y轴标签上有鼠标悬停事件?例如,我在下面有一个散点图.y轴上的标签是"area1","area2"和"area3".当用户悬停标签"area1"时,将弹出工具提示以显示area1的描述.我以前没有看到过这样的例子.有人知道怎么做吗?非常感谢!
我这里也有一个傻瓜http://plnkr.co/edit/wLjanxFWIzpxP0cbq6kK?p=preview

<!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Plot</title>
    <style> 
     .axis path,
     .axis line{
        fill: none;
        stroke: #000;
        shape-rendering: crishpEdges;
        }    
    </style>
  </head>
    <h1 style = "text-align:center;">Example</h1>     

 <body>
    <script src="http://d3js.org/d3.v3.min.js"></script>  
    <div id="chart">
    </div>
    <script>

     var data = [
       {x: 5, y: "area1"
        },
       {x: 34, y: "area2"
        },
       {x: 19, y: "area3"
        }
       ];

 data.forEach(function(d){
        d.x = +d.x;
        d.y = d.y;

        return console.log(data);
    })

    var m = {t:30, r:20, b:40, l:45 },
        w = 600 - m.l - m.r, …
Run Code Online (Sandbox Code Playgroud)

javascript d3.js

4
推荐指数
1
解决办法
2857
查看次数