小编nil*_*ole的帖子

R:将数据帧行转换为字符向量

精简版:

在尝试将数据帧的单行转换为字符向量时,我不理解as.character的行为.

> mydf <- data.frame("myvar1"=c("mystring","2"),"myvar2"=c("mystring","3"))
> mydf # nice!
myvar1   myvar2
1 mystring mystring
2        2        3
> as.character(mydf[1,])
[1] "2" "2"
> as.character(as.vector(mydf[1,]) ) 
[1] "2" "2"
Run Code Online (Sandbox Code Playgroud)

也许有人可以给我一个解释最后2个输出线和正确的方法?非常感谢.

背景/目的:

我想使用lre()它来检测数据帧的一行中的连续出现的值(具有不同数据类型的列).

问题:lre()需要一个向量,向量需要一个确定的数据类型(整数,字符,因子,......).我的想法是将数据帧行转换为字符向量,以避免通过转换丢失数据.

string r vector type-conversion

13
推荐指数
2
解决办法
2万
查看次数

计算 R 中一组变量中值的出现次数(每行)

假设我有一个包含 10 个数字变量 V1-V10(列)和多行(案例)的数据框。

我希望 R 做的是:对于每种情况,给我一组变量中某个值出现的次数。

例如,V2、V3、V6 的单行中数值 99 的出现次数,显然其最小值为 0(三者都没有值 99),最大值为 3(三者都有值 99)。

我真的在寻找与 SPSS 函数COUNT等效的函数:“COUNT创建一个数值变量,对于每种情况,它都会计算变量列表中相同值(或值列表)的出现次数。

我想过table()和图书馆 plyr's count(),但我无法真正弄清楚。首选矢量化计算。非常感谢!

r count find-occurrences

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

markercluster 是否与 leafletProxy() 和选项 iconCreateFunction 一起使用?

我做错了什么,或者为什么下面的例子不起作用?leafletProxy()我正在尝试使用选项使传单标记簇插件在 R Shiny 应用程序中使用iconCreateFunction。该插件是否无法使用 向地图添加自定义图标标记leafletProxy()

当我按下第一个按钮并缩小下面的示例时,我收到一条错误消息:

类型错误:this._group.options.iconCreateFunction 不是函数

在此输入图像描述

我尝试从markercluster文档中复制原始示例:

library(shiny)
library(dplyr)
library(leaflet)

ui <- fluidPage(
  titlePanel("Hello Shiny!"),
  sidebarLayout(
    sidebarPanel(
      actionButton(inputId = "my_button1",
                   label = "Use leafletProxy()"),
      actionButton(inputId = "my_button2",
                   label = "Use renderLeaflet()")
    ),
    mainPanel(
      leafletOutput(
        outputId = "map",
        width = "100%",
        height = "300px"
      )
    )
  )
)

server <- function(input, output, session) {

  some_data <- data.frame(
    "lon"=c(4.905167,4.906357,4.905831),
    "lat"=c(52.37712,52.37783,52.37755),
    "number_var"=c(5,9,7),
    "name"=c("Jane","Harold","Mike"),
    stringsAsFactors = F
  )

  output$map <- renderLeaflet({
    return(
      leaflet(data = some_data[0,]) …
Run Code Online (Sandbox Code Playgroud)

javascript r leaflet shiny leaflet.markercluster

6
推荐指数
2
解决办法
1251
查看次数

将 system() 输出流式传输到 Shiny 前端(连续)

如何捕获正在进行的system()操作的输出并将其“实时”传输到 Shiny 前端?

intern=T 在字符向量中捕获整个输出,但我更喜欢“听”系统输出。

library(shiny) 
ui <- fluidPage(
   titlePanel("Stream the system output"),
   sidebarLayout(
      sidebarPanel(
         actionButton("btn1",label = "Let's stream")
      ),
      mainPanel(
         textOutput("textstream_output")
      )
   )
)
server <- function(input, output, session) {
  rv <- reactiveValues("textstream"=c(""))
  output$textstream_output <- renderText({
    rv$textstream
  })
  observeEvent(input$btn1,{
  # problem: is evaluated after finish, not during operation  
    rv$textstream <- system("Rscript -e \"for(i in 1:5){ print(Sys.time()); Sys.sleep(1);  };\"",
                            intern = T)
  })
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

使用 运行system命令时intern=F,R 控制台每秒持续更新一次。我怎样才能在 …

shell r stream command-line-interface shiny

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

如何在 Shiny 中正确使用 session$userData

session$userDataShiny 应用程序中获取/设置值的正确方法是什么?该文件指出

userData:应用程序作者和模块/包作者的环境,用于存储他们想要的任何特定于会话的数据。

并且userData仅在用户登录后在 Shiny 服务器上的应用程序中执行时才可用?

我想工作,session$userData在运行从RStudio IDE内的应用程序,但session$userDataNULL,和我得到的错误说:“不能添加绑定到锁定的环境。”

library(shiny)

ui <- fluidPage()

server <- function(input, output, session) {

  # Returns NULL 
  print(session$userData)

  # will throw an error
  session$userData$test <- "test value"
  attr(session$userData,"test") <- "test value" 

}

shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

可能相关:

session r shiny

5
推荐指数
0
解决办法
2470
查看次数

使用变量对 data.table 进行子集化(当 varname 与 colname 相同时)

当变量名称与 data.table 中的现有列名称相同时,如何使用变量对 data.table 进行子集化?它适用于get("varname",pos = 1),但是否有更强大/灵活的解决方案?

library(data.table)

my_data_frame <- data.frame(
"V1"=c("A","B","C","A"),
"V2"=c(1, 2, 3, 4),
stringsAsFactors = FALSE        
)

V1 <- "A"

my_data_table <- as.data.table(my_data_frame)

# Can I improve this a bit? I want rows where V1 == "A", but use V1 in the statement 
my_data_table[ my_data_table$V1 == get("V1", pos = 1), ]
Run Code Online (Sandbox Code Playgroud)

重命名V1不是一种选择。

更新:我不认为这是 100% 重复。这个问题的公认答案对于我的问题是不可接受的,因为它使用了get我不想使用的显式,如评论中所述。

scope r reference subset data.table

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