我正在努力根据单元格值在我闪亮的应用程序中为整行 rhandsontable 着色。
在下面的示例中,我想格式化整行而不是一个单元格。
library(rhandsontable)
DF = data.frame(val = 1:10, bool = TRUE, big = LETTERS[1:10],
small = letters[1:10],
dt = seq(from = Sys.Date(), by = "days", length.out = 10),
stringsAsFactors = FALSE)
col_highlight = 2
row_highlight = c(5, 7)
rhandsontable(DF, width = 550, height = 300) %>%
hot_cols(renderer = "
function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
if(value == 'F' | value == 'f') {
td.style.background = 'pink';
} else if(value == 'J' | value …Run Code Online (Sandbox Code Playgroud) 我每天通过我的闪亮应用程序的cron作业更新我的RData文件.但是,闪亮的应用程序不会在大多数情况下选择更新并继续显示旧RData文件中的旧数据.
这是最小可重复的例子.从我的桌面执行data_processing.R时,它工作正常.但是,当它在Rshiny服务器上完成时,闪亮的应用程序不会读取更新的日期和时间戳.
data_processing.R
rm(list=ls())
df <- iris
data_update_date_time <- Sys.time()
save.image("working_dataset.RData", compress = TRUE)
Run Code Online (Sandbox Code Playgroud)
server.R
load("working_dataset.RData")
function(input, output, session) {
# Combine the selected variables into a new data frame
selectedData <- reactive({
df[, c(input$xcol, input$ycol)]
})
clusters <- reactive({
kmeans(selectedData(), input$clusters)
})
output$plot1 <- renderPlot({
palette(c("#E41A1C", "#377EB8", "#4DAF4A", "#984EA3",
"#FF7F00", "#FFFF33", "#A65628", "#F781BF", "#999999"))
par(mar = c(5.1, 4.1, 0, 1))
plot(selectedData(),
col = clusters()$cluster,
pch = 20, cex = 3)
points(clusters()$centers, pch = 4, cex = 4, …Run Code Online (Sandbox Code Playgroud) 无论如何都要添加图层控件或按钮来重置地图并返回初始位置.例如,当您正在探索地图并放大时,然后您想要缩小以返回初始阶段.
library(shiny)
library(leaflet)
ui <- fluidPage(
leafletOutput("mymap")
)
server <- function(input, output, session) {
outline <- quakes[chull(quakes$long, quakes$lat),]
output$mymap <- renderLeaflet({ leaflet(quakes) %>%
# Base groups
addTiles(group = "OSM (default)") %>%
addProviderTiles("Stamen.Toner", group = "Toner") %>%
addProviderTiles("Stamen.TonerLite", group = "Toner Lite") %>%
# Overlay groups
addCircles(~long, ~lat, ~10^mag/5, stroke = F, group = "Quakes") %>%
addPolygons(data = outline, lng = ~long, lat = ~lat,
fill = F, weight = 2, color = "#FFFFCC", group = "Outline") %>%
# Layers control …Run Code Online (Sandbox Code Playgroud) 有没有办法找到多个时间轴之间的差距.例如,我的数据如下所示:
library(plyr);library(dplyr)
library(googleVis)
df <- data.frame(Language = structure(c(rep("English",7), rep("German",5), rep("French", 10)), class = "character"),
Students = c(LETTERS[1:7], LETTERS[1:5], LETTERS[1:10]),
Start = structure(c(16713,16713,16713,16744,16713,16714,16754,16729,16729,16729,16750,16769,
16724,16724,16745,16724,16759,16766,16723,16722,16736,16796), class = "Date"),
End = structure(c(16762,16720,16762,16755,16720,16764,16762,16765,16765,16749,16761,16770,16758,
16744,16758,16764,16765,16766,16726,16723,16758,16806), class = "Date"))
ddply(df, .(Language), summarise,
FirstDay = min(Start),
LastDay = max(End),
Duration = LastDay - FirstDay)
plot(gvisTimeline(data=df, rowlabel = "Class", start = "Start", end = "End", options=list(width=600, height=1000) ))
Run Code Online (Sandbox Code Playgroud)
在没有学生上课的时候,我正在计算差距.下图中的间隙以红色突出显示.
Great R Gurus,
有没有可能在Rshiny的圆形标记上嵌入标签的方法,如下所示:
这是一个供参考的快速示例:
# Some fake data
df <- sp::SpatialPointsDataFrame(
cbind(
(runif(20) - .5) * 10 - 90.620130, # lng
(runif(20) - .5) * 3.8 + 25.638077 # lat
),
data.frame(type = factor(
ifelse(runif(20) > 0.75, "p", "s"),
c("s", "p")
))
)
# leaflet map
leaflet(df) %>% addTiles() %>% addCircleMarkers(label = ~type)
Run Code Online (Sandbox Code Playgroud)
我想在标记的顶部打印标签(即“ s”和“ p”)。非常感谢您的回答时间...
我一直在努力如何在 R 中只选择重复的 data.frame 行。例如,我的 data.frame 是:
age=18:29
height=c(76.1,77,78.1,78.2,78.8,79.7,79.9,81.1,81.2,81.8,82.8,83.5)
Names=c("John","John","John", "Harry", "Paul", "Paul", "Paul", "Khan", "Khan", "Khan", "Sam", "Joe")
village <- data.frame(Names, age, height)
Names age height
John 18 76.1
John 19 77.0
John 20 78.1
Harry 21 78.2
Paul 22 78.8
Paul 23 79.7
Paul 24 79.9
Khan 25 81.1
Khan 26 81.2
Khan 27 81.8
Sam 28 82.8
Joe 29 83.5
Run Code Online (Sandbox Code Playgroud)
我想看到如下结果:
Names age height
John 18 76.1
John 19 77.0
John 20 78.1
Paul 22 78.8
Paul …Run Code Online (Sandbox Code Playgroud) 我有一个超过500,000行的大型数据框.我希望将它导出到具有特定行限制的多个excel/csv文件(例如100,000行).
我的解决方案是:
library(openxlsx)
write.xlsx(df[1:100000,], "path")
write.xlsx(df[100001:200000,], "path")
write.xlsx(df[200001:300000,], "path")
write.xlsx(df[300001:400000,], "path")
write.xlsx(df[400001:500000,], "path")
Run Code Online (Sandbox Code Playgroud)
有没有优雅的方法呢?谢谢