输入字符串 1 无效 UTF-8 Shiny 应用程序

2024-03-12

我正在尝试创建一个闪亮的应用程序并不断收到错误Warning: Error in sub: input string 1 is invalid UTF-8这阻止了我的selectInput从出现。我尝试过使用utf8包将字符串转换为有效的 UTF-8 字符串,甚至在运行应用程序之前进行测试以确认它们都是 UTF-8 有效的mean(utf8_valid(unique(lol_data$name)))[1] 1但错误仍然发生。任何帮助使其发挥作用的帮助将不胜感激。

闪亮应用程序代码这是我的应用程序的代码。

setwd("")
library(shiny)
lol_data <- read_csv(paste("data/shiny/cleanedlol_data", 
                           Sys.Date(), sep = ''))

# Define UI for application that draws a histogram
ui <- fluidPage(
  titlePanel("How well will your lol draft do?"),
  sidebarLayout(
   sidebarPanel(
     selectInput(
       "player",
       "select your player *required",
       choices = unique(as.character(lol_data$name))
     ),
     uiOutput("secondSelection"),
     uiOutput("thirdSelection"),
     uiOutput("fourthSelection"),
     uiOutput("fifthSelection")
   ),
   mainPanel(
     plotOutput("histogram")
   )
  )
)

# Define server logic required to draw a histogram
server <- function(input, output) {
  output$secondSelection <- renderUI({
    selectInput("opp_name", "select your opponent", 
                choices = unique(lol_data %>%
                                         filter(name == input$player &
                                                  ifelse(!is.na(input$team),
                                                         lol_data$team ==
                                                           input$team,
                                                         !is.na(lol_data$team)) &
                                                  ifelse(!is.na(input$team_vs),
                                                          lol_data$team_vs ==
                                                            input$team_vs, 
                                                          !is.na(team_vs)) &
                                                  ifelse(!is.na(input$role),
                                                         lol_data$role ==
                                                           input$role,
                                                         !is.na(lol_data$role))
                                                         )) %>%
                                       pull(opp_name))
  })
  output$thirdSelection <- renderUI({
    selectInput("team", "select your player's team", 
                choices = unique(lol_data%>%
                                         filter(name == input$player &
                                                  ifelse(!is.na(input$opp_name),
                                                         lol_data$opp_name ==
                                                           input$opp_name,
                                                         !is.na(lol_data$opp_name)) &
                                                         ifelse(!is.na(input$team_vs),
                                                                lol_data$team_vs ==
                                                                  input$team_vs, 
                                                                !is.na(team_vs)) &
                                                         ifelse(!is.na(input$role),
                                                                lol_data$role ==
                                                                  input$role,
                                                                !is.na(lol_data$role))
                                                  )) %>%
                  pull(team))
  })
  output$fourthSelection <- renderUI({
    selectInput("team_vs", "select your opposing team", 
                choices = unique(lol_data%>%
                                         filter(name == input$player&
                                                  ifelse(!is.na(input$opp_name),
                                                         lol_data$opp_name ==
                                                           input$opp_name,
                                                         !is.na(lol_data$opp_name) &
                                                         ifelse(!is.na(input$team),
                                                                lol_data$team ==
                                                                  input$team, 
                                                                !is.na(team)) &
                                                         ifelse(!is.na(input$role),
                                                                lol_data$role ==
                                                                  input$role,
                                                                !is.na(lol_data$role))
                                                  )) %>%
                                         pull(team_vs)))
  })
  output$fifthSelection <- renderUI({
    selectInput("role", "select your player's role", 
                choices = unique(lol_data%>%
                                         filter(name == input$player &
                                                  ifelse(!is.na(input$team),
                                                         lol_data$team ==
                                                           input$team,
                                                         !is.na(lol_data$team)) &
                                                         ifelse(!is.na(input$team_vs),
                                                                lol_data$team_vs ==
                                                                  input$team_vs, 
                                                                !is.na(team_vs)) &
                                                         ifelse(!is.na(input$opp_name),
                                                                lol_data$opp_name ==
                                                                  input$opp_name,
                                                                !is.na(lol_data$opp_name))
                                                  )) %>%
                  pull(role))
  })
  output$hist <- renderPlot({
    data_name <- subset(lol_data, name == input$player, opp_name = input$opp_name,
                        team == input$team, team_vs == input$team_vs,
                        role == input$role)
    ggplot(data_name, aes(x = points))+
      geom_histogram()
  })  
}


shinyApp(ui = ui, server = server)

Result这是我测试App时得到的结果。

runApp('~/test')
Warning: Missing column names filled in: 'X1' [1]
Parsed with column specification:
cols(
  .default = col_double(),
  name = col_character(),
  link = col_character(),
  champion = col_character(),
  summoner_spells = col_character(),
  items = col_character(),
  team = col_character(),
  team_vs = col_character(),
  player_win = col_character(),
  date_time_utc = col_datetime(format = ""),
  role = col_character(),
  unique_line = col_character(),
  unique_game = col_character(),
  unique_line_vs = col_character(),
  current_year = col_logical(),
  opp_name = col_character(),
  opp_team = col_character(),
  opp_team_vs = col_character(),
  opp_player_win = col_character(),
  opp_date_time_utc = col_datetime(format = ""),
  opp_role = col_character()
  # ... with 1 more columns
)
See spec(...) for full column specifications.
|=================================================================================================================| 100%  416 MB

Listening on http://127.0.0.1:6931
Warning: Error in sub: input string 1 is invalid UTF-8
  [No stack trace available]

准备为应用程序拉取的 csv 文件的代码这是准备给我错误的数据的相关代码。

library(utf8)
if(str_detect(list.files("data/shiny/"), 
              paste("cleanedlol_data", Sys.Date(),  sep = ""))){
  lol_data <- read_csv(paste("data/shiny/cleanedlol_data", 
                             Sys.Date(), sep = ''))
}else{

lol_data <- lol_data  %>%
  janitor::clean_names() %>%
  mutate(lg_kll_vr_sssts = replace(lg_kll_vr_sssts, 
                                   is.infinite(lg_kll_vr_sssts),NA),
         lg_kll_cs_vr_dth = replace(lg_kll_cs_vr_dth, 
                                    is.infinite(lg_kll_cs_vr_dth),NA),
         lg_kls_sts_cs_vr_dth = replace(lg_kls_sts_cs_vr_dth, 
                                        is.infinite(lg_kls_sts_cs_vr_dth),NA),
         lg_kls_vr_sts_cs = replace(lg_kls_vr_sts_cs, 
                                    is.infinite(lg_kls_vr_sts_cs),NA),
         lg_kl_vr_sts_cs_dth = replace(lg_kl_vr_sts_cs_dth, 
                                       is.infinite(lg_kl_vr_sts_cs_dth),NA),
         hist_points = points) %>%
  arrange(name, date_time_utc) %>%
  group_by(name) %>%
  mutate(avg_points = mean(points, na.rm = TRUE)) %>%
  mutate_at(c("kills", "deaths", "assists", "gold", "cs", "team_kills",
              "team_gold", "hist_points", "lg_kll_vr_sssts",
              "lg_kll_cs_vr_dth", "lg_kls_sts_cs_vr_dth", 
              "lg_kls_vr_sts_cs", "lg_kl_vr_sts_cs_dth"), 
            list(~rollapply(lag(.), 3, 
                            mean, na.rm=T, 
                            partial = F,
                            fill = NA, 
                            align = "right"))) %>%
  ungroup() %>%
  group_by(name, current_year) %>%
  mutate(current_yr_avg_pnts = mean(points, na.rm = TRUE),
         current_yr_avg_kills = mean(kills, na.rm = TRUE),
         current_yr_avg_deaths = mean(deaths, na.rm = TRUE),
         current_yr_avg_assists = mean(assists, na.rm = TRUE),
         current_yr_avg_gold = mean(gold, na.rm = TRUE),
         current_yr_avg_cs = mean(cs, na.rm = TRUE),
         crrnt_yr_avg_lg_kll_vr_sssts = mean(lg_kll_vr_sssts, na.rm = T),
         crnt_yr_avg_lg_kll_cs_vr_dth = mean(lg_kll_cs_vr_dth, na.rm=T),
         crnt_yr_lg_kls_sts_cs_vr_dth = mean(lg_kls_sts_cs_vr_dth, 
                                             na.rm=T),
         crnt_yr_lg_kls_vr_sts_cs = mean(lg_kls_vr_sts_cs, na.rm=T)) %>%
  ungroup() %>%
  select(-trinket, -keystone_mastery, -keystone_rune, -time, -dst, 
         -tournament, -game_id_wiki, -game_id_riot, -time_precision,
         -date_time_utc_precision) %>%
  mutate_if(is.character, as_utf8) %>%
  filter(complete.cases(.))

opp_data <- lol_data %>%
  select(name, kills, deaths, assists, gold, cs, team_kills, team_gold, team, 
         team_vs,  player_win, date_time_utc, role,
         role_number, side, unique_line, unique_line_vs, 
          points,
         hist_points, current_yr_avg_pnts, current_yr_avg_kills , 
         current_yr_avg_deaths ,current_yr_avg_assists , 
         current_yr_avg_gold , current_yr_avg_cs,
         crrnt_yr_avg_lg_kll_vr_sssts, lg_kll_vr_sssts,
         crnt_yr_avg_lg_kll_cs_vr_dth, lg_kll_cs_vr_dth) %>%
  rename(opp_name = name, opp_kills = kills, opp_deaths = deaths, 
         opp_assists =  assists, opp_gold = gold, opp_cs = cs, 
         opp_team_kills = team_kills, opp_team_gold = team_gold, 
         opp_team = team, opp_team_vs = team_vs, 
         opp_player_win = player_win,opp_date_time_utc = date_time_utc, 
         opp_role = role,
         opp_role_number = role_number, opp_side = side, 
         opp_unique_line = unique_line, opp_unique_line_vs = unique_line_vs,
         opp_points = points, 
         opp_hist_points = hist_points, 
         opp_current_yr_avg_pnts = current_yr_avg_pnts, 
         opp_current_yr_avg_kills = current_yr_avg_kills, 
         opp_current_yr_avg_deaths = current_yr_avg_deaths,
         opp_current_yr_avg_assists = current_yr_avg_assists, 
         opp_current_yr_avg_gold = current_yr_avg_gold, 
         opp_current_yr_avg_cs = current_yr_avg_cs,
         opp_crrnt_yr_avg_lg_kll_vr_sssts = crrnt_yr_avg_lg_kll_vr_sssts,
         opp_lg_kll_vr_sssts = lg_kll_vr_sssts,
         opp_crnt_yr_avg_lg_kll_cs_vr_dth = crnt_yr_avg_lg_kll_cs_vr_dth,
         opp_lg_kll_cs_vr_dth = lg_kll_cs_vr_dth)

lol_data <- lol_data %>%
  left_join(opp_data, by = c("unique_line" = "opp_unique_line_vs"))%>%
  filter(complete.cases(.))

write.csv(lol_data, file = paste("data/shiny/cleanedlol_data", 
                                 Sys.Date(), 
                                  sep = ""))

}
beep("fanfare")

我找到了一个有效的解决方案,

Using mutate_if(is.character, utf8::utf8_encode)代替mutate_if(is.character, utf8::as_utf8)准备数据时有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

输入字符串 1 无效 UTF-8 Shiny 应用程序 的相关文章

  • 从 foreach 循环赋值

    我想并行化一个循环 例如 td lt data frame cbind c rep 1 4 2 rep 1 5 rep 1 10 2 names td lt c val id res lt rep NA NROW td for i in l
  • R:如何添加具有从矩阵的每一行中随机选择的值的列?

    我会先说我是一个 R 菜鸟 我认为这可能有一个简单的解决方案 但我正在努力寻找它 我有一个 2 列 1 000 行的矩阵 保持行固定 我想创建一个新变量 从两列中随机选择一个元素 例如制作一个简单的矩阵 matrix c 1 1 4 6 1
  • 当按多列分组时,如何命名 dplyr 中的 group_split 列表

    我在 dplyr 中使用 group split 在分割了多个列后 我很难命名列表 当我们按一列分组时 我知道该怎么做here https stackoverflow com questions 57107721 how to name t
  • R 中有没有快速替换列值的方法?

    假设我们有一个包含数值的数据框 如下所示 Temperature Height 32 157 31 159 33 139 我想更换Height价值观与pic 00001 pic 00002等等 最终结果是 Temperature Heigh
  • 在 Bookdown 中呈现附录图号

    Bookdown 是一个很棒的软件包 我期待看到它如何发展 但现在我在渲染数字方面遇到了麻烦pdf document2附录中的数字时的格式 具体来说 当带有标题的图形位于附录中时 图形编号应采用 A 1 A 2 B 1 B 2 等形式 但图
  • 从 data.frame 创建新列

    我有一个长格式的数据集 其中测量 时间 嵌套在 Networkpartners NP 中 而 Networkpartners NP 又嵌套在人员 ID 中 下面是它的示例 真实数据集有数千行 ID NP Time Outcome 1 11
  • 在 R 中使用 gamlss::lms 选择百分位数曲线

    我正在使用 gamlss 包中的示例代码来绘制百分位数曲线 library gamlss data abdom lms y x data abdom n cyc 30 它正在绘制自己的一组百分位数曲线 如何选择只绘制第 10 50 和 90
  • 为什么 rbind 会抛出警告

    这与是否有更优雅的方法将不规则的数据转换为整洁的数据框 https stackoverflow com questions 25102617 are there more elegant ways to transform ragged d
  • 将传入字符串的 unicode 表示形式转换为 UTF-8?

    我正在读取一些已经转换为 html 样式 代码的数据 我现在需要将其转换回 UTF 8 字符以供查看 不幸的是我无法使用浏览器查看该字符串 我读过有关 java 中的转换的内容 似乎如果你有一个 uxxxx 字符串 那么编译器会为你转换 然
  • 在多面图中用 N 注释 x 轴

    我正在尝试生成一些按治疗条件和访问次数细分的数字结果的箱线图 每个框中的观察次数都放在图下方 并且也标记了访问次数 这里有一些虚假数据可以用来说明 我举了两个我尝试过但不太有效的例子 library ggplot2 library plyr
  • (R 错误)错误:cons 内存耗尽(达到限制?)

    我正在处理大数据 并且有一个 70GB 的 JSON 文件 我正在使用 jsonlite 库将文件加载到内存中 我尝试过 AWS EC2 x1 16large 机器 976 GB RAM 来执行此负载 但 R 因错误而中断 Error co
  • 根据列A:列B范围内的值查找数据框中的相应行[重复]

    这个问题在这里已经有答案了 我有一个 data frame 和一个向量 例如 df data frame id 1 3 start c 1 1000 16000 end c 100 1100 16100 info c a b c vec c
  • r - 从我的应用程序下载shinyapps代码

    我正在尝试从shinyapps io 在另一台电脑上下载我的shiny 应用程序代码 我按照这个例子 https support rstudio com hc en us articles 204536588 从 shinyapps io下
  • 为格子中的每个面板添加不同的独特标签

    很清楚如何在格子中标记面板 https stackoverflow com questions 8508269 how to label panels in lattice using panel text or ltext论据 但是 如果
  • 如何获得 R 帮助?

    R 包可能有哪些可用文档 例如我尝试理解sp包裹 此外help sp 还有哪些用于搜索帮助和文档的其他功能 获取有关您知道其名称的函数的帮助 Use http www inside r org r doc utils Question或者
  • 用闪亮的 R 设计 DT 中的展开行按钮

    我正在尝试设计 DT 中可用的展开行按钮的样式 样式可用here https datatables net examples api row details html 我用于创建数据表的代码是 library DT datatable cb
  • 数据表中的 NA

    我有一个data table其中包含一些组 我对每个组进行操作 有些组返回数字 其他组返回NA 因为某些原因data table很难将所有东西重新组合在一起 这是一个错误还是我误解了 这是一个例子 dtb lt data table a 1
  • 如何在knitr中安装软件包?

    到目前为止 我一直在使用这段代码来加载 R 包并编写 R 文件 但我正在尝试使用knitr rm list ls all TRUE kpacks lt c ggplot2 install github devtools mapdata ne
  • 当我用一个观察值运行回归时,为什么“fastLm()”会返回结果?

    为什么fastLm 当我用一项观察进行回归时返回结果吗 下面为什么不lm and fastLm 结果相等吗 library Rcpp library RcppArmadillo library data table set seed 1 D
  • linux下无法安装Cairo包

    我在本地下载该软件包并尝试安装它 但出现此错误 R CMD INSTALL l usr local lib64 R library Cairo 1 5 1 tar gz 我得到他的错误 checking for PNG support in

随机推荐

  • 使用 PIL 缩放图像并保持透明度和颜色?

    假设您想要缩放透明图像 但还不知道稍后将其合成的背景颜色 不幸的是 PIL 似乎合并了完全透明像素的颜色值 导致了糟糕的结果 有没有办法告诉 PIL resize 忽略完全透明的像素 import PIL Image filename tr
  • RxJ 的空订阅

    有没有空的Subscription在 RxJ 中 在RxJava中 有订阅 empty http reactivex io RxJava javadoc rx subscriptions Subscriptions html empty 一
  • Mac 上的 gdb 7.6 缺少带断言的调用堆栈框架

    当调试断言失败的程序时 我无法在 gdb 中获取调用堆栈 我在 Mavericks 上使用 Homebrew 的 g 4 8 和 gdb usr local bin g 4 8 version g 4 8 GCC 4 8 2 usr loc
  • System.Drawing.Color 操作的扩展方法库

    有没有人为 System Drawing Color 编写过一个不错的扩展方法 库 很高兴地说 Color Red AdjustBrightness 5 Color Red AdjustAlpha 5 Color Red ToHSV 或类似
  • 如何播放 Google 云端硬盘链接中的视频?

    在我的应用程序中 我想播放来自 Google Drive 链接的视频 我尝试过使用VideoPlayerController controller VideoPlayerController network https drive goog
  • 我对 True 和 False 感到困惑。True 值代表非零,False 值代表零吗? [复制]

    这个问题在这里已经有答案了 为什么下面的程序在完成比较操作后给出相反的答案 main int k 35 printf d n d n d k 35 k 50 k lt 40 output 0 50 1 根据 C 标准 该程序不是有效的 C
  • VBA:使用变量传递列数组时删除重复项失败

    The bounty https stackoverflow com help bounty过期4天内 此问题的答案有资格获得 50声誉赏金 L42 users 2685412 l42想要奖励现有答案 一个答案提供了创建解决方法的详细分步过
  • mapstruct 将 id 映射到对象

    我有一个对象学校 它有一个对象人 人已经保存在数据库中 当我保存学校对象时 我给它一个人ID 所以在班级 school 中 我有一个 Person 类型的属性 person 在 SchoolDTO 中 我有一个 Long 类型的属性 per
  • 如何将 FormUrlEncodedContent 用于复杂数据类型?

    我需要与仅接受表单编码有效负载的第三方端点进行交互 端点需要在此端点上使用复杂的数据类型 这意味着类似这样的内容 但形式编码 而不是 JSON foo bar baz zip zap 我的谷歌搜索和端点的文档表明这应该是这样的形式编码 fo
  • pandas DataFrame 中 x 天每个元素的累积乘积

    我尝试计算 a 中的每个元素Dataframe df1累计积超过x天 例如 3 有没有有效的方法来做到这一点 到目前为止 我只知道在行上生成正常的累积乘积 而不将回溯期固定为x days df2 例如 2022 01 02 ID1 1 05
  • 如何在 C# 中获取活动进程名称?

    如何在 C 中获取活动进程名称 我知道我必须使用这段代码 DllImport user32 dll private static extern IntPtr GetForegroundWindow 但我不知道如何使用它 正如中提到的这个答案
  • 是否可以选择 Windows 表单标签上的文本?

    是否可以突出显示 选择 Windows 窗体标签控件中的部分文本 我知道使用 RTFtextbox 控件是可能的 但使用该控件会有点矫枉过正 因为我需要创建许多标签实例 是否可以选择 Windows 表单标签上的文本 否 至少没有简单的方法
  • 如何总结组合列表

    我有一个包含 2 个元素组合的列表 如下所示 cbnl lt list c A B c B A c C D c E D c F G c H I c J K c I H c K J c G F c D C c E C c D E c C E
  • 使用消息驱动通道适配器和服务激活器进行事务处理

    我正在开发一个 POC 它执行以下操作 使用消息驱动的通道适配器来接收事务中的消息 调用服务激活器 该激活器使用处理程序将从适配器接收到的消息插入到数据库 并将消息发布到出站通道 现在 如果消息的数据库插入失败 我希望 JMS 消息返回到队
  • OpenSSL 使用固定值来生成 Diffie Hellman 密钥

    根据该文件 https wiki openssl org index php Diffie Hellman Using the Low Level APIs https wiki openssl org index php Diffie H
  • xcodebuild 使用哪个版本的 Xcode?

    我在同一台机器上安装了 Xcode 3 2 和 Xcode 4 0 2 它使用 Hudson 进行自动化 CI 持续集成 构建 当我说两者都已安装时 我的意思是我可以同时或交替使用 Xcode 3 和 Xcode 4 它们都存在于机器上 因
  • C++:有效但未指定的状态。这是什么意思? [复制]

    这个问题在这里已经有答案了 我一直在尝试理解 std move This http www cplusplus com reference utility move doc描述得很好 但它在示例部分中说 而 bar 失去了它的值 现在处于有
  • 如何将值注入 TensorFlow 图的中间?

    考虑以下代码 x tf placeholder tf float32 name x z x tf constant 5 0 y tf mul z tf constant 0 5 with tf Session as sess print s
  • jQuery Ajax 请求每 30 秒一次

    我有这段代码 但当有人访问我的网站时 这些值可能会发生变化 我需要每 30 秒左右更新一次 finance div 这可以做到吗 function getJSON http query yahooapis com v1 public yql
  • 输入字符串 1 无效 UTF-8 Shiny 应用程序

    我正在尝试创建一个闪亮的应用程序并不断收到错误Warning Error in sub input string 1 is invalid UTF 8这阻止了我的selectInput从出现 我尝试过使用utf8包将字符串转换为有效的 UT