Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:如果值包含某个字符串,则为颜色数据表单元格_R_Dplyr_Dt - Fatal编程技术网

R:如果值包含某个字符串,则为颜色数据表单元格

R:如果值包含某个字符串,则为颜色数据表单元格,r,dplyr,dt,R,Dplyr,Dt,我正试图创建一个梦幻足球板,跟踪即将到来的2019赛季每个NFL球员的平均选秀位置(ADP)。我正在使用对API的调用。我想在一个闪亮的应用程序中构建一些东西,看起来与他们网站上的草稿板相似,但我可以在自己的网站上定制: 它不必看起来像这样漂亮,但我希望细胞按位置编码;正如你所看到的,背景颜色显示了每个玩家的位置:蓝色代表RB,绿色代表WR,红色代表QB,等等 我意识到在R中使用DT,如果单元格是数值,我可以给它们着色,,但是如果单元格包含某些字符串值,比如“-RB”或“-WR”,我可以给单元

我正试图创建一个梦幻足球板,跟踪即将到来的2019赛季每个NFL球员的平均选秀位置(ADP)。我正在使用对API的调用。我想在一个闪亮的应用程序中构建一些东西,看起来与他们网站上的草稿板相似,但我可以在自己的网站上定制:

它不必看起来像这样漂亮,但我希望细胞按位置编码;正如你所看到的,背景颜色显示了每个玩家的位置:蓝色代表RB,绿色代表WR,红色代表QB,等等

我意识到在R中使用DT,如果单元格是数值,我可以给它们着色,,但是如果单元格包含某些字符串值,比如“-RB”或“-WR”,我可以给单元格着色吗?目前,我在DT表中内置了以下代码,该表以以下格式显示玩家和位置:“玩家名称-位置”

库(RJSONIO)
图书馆(RCurl)
图书馆(dplyr)
图书馆(DT)
half_ppr_players=RJSONIO::fromJSON(getURL(“https://fantasyfootballcalculator.com/api/v1/adp/half-ppr?teams=12&year=2019"))
half\u ppr\u df=do.call(rbind.data.frame,half\u ppr\u players$players)
行名(半行)
筛选器(!(名称%in%keepers))
half_ppr_df=half_ppr_df%>%
变异(name=as.character(name),
adp_排名=1:nrow(一半ppr_df),
rd=楼层(adp_等级/12),
选择=如果其他(adp_排名%%12==0,12,adp_排名%%12),
rd=ifelse(拾取==12,rd,rd+1))
m=矩阵(nrow=17,ncol=12)
对于(第1:17行){
(列在1:12中){
此行=half\u ppr\u df[half\u ppr\u df$rd==行和half\u ppr\u df$pick==列,]
如果(第%%2行==0){
m[行,12列+1]=粘贴(此_行$name,'-',此_行$position)
}否则{
m[row,col]=粘贴(此_行$name,'-',此_行$position)
}
}
}
draftboard=作为数据帧(m)
colnames(draftboard)=粘贴(“拾取”,序号(1,ncol(m),1))
行名称(绘图板)=粘贴(“Rd”,序号(1,nrow(m),1))
DT::数据表(绘图板)

我目前正在使用DT,因为我习惯于在闪亮的应用程序中使用DT,但我对其他选项持开放态度。我也知道我可能需要构建一个自定义Javascript函数。有什么想法吗?

dat作为一个侧面,如果您不害怕尚未发布的软件包,则支持每单元颜色。我不是这方面的开发人员,我只知道它可以做到。
dat <- data.frame(
  V1 = c("John - RB", "Max - WR"),
  V2 = c("Bill - WR", "David - RB")
)

js <- "(/- WR/).test(value) ? 'red' : (/- RB/).test(value) ? 'yellow' : ''"

datatable(dat) %>% 
  formatStyle(1:ncol(dat), backgroundColor = JS(js))
dat <- data.frame(
  V1 = c("John - RB", "Max - WR"),
  V2 = c("Bill - WR", "David - RB")
)

js <- "(/- WR/).test(value) ? 'red' : (/- RB/).test(value) ? 'yellow' : ''"

datatable(dat) %>% 
  formatStyle(1:ncol(dat), backgroundColor = JS(js))