我在Shiny的服务器中有一个renderTable输出,我正在尝试使用以下代码重命名最终表:
output$tubeArrival <- renderTable({
#GET request and convert JSON to a dataframe
data <- GET(url)
text_data <- content(data,as = 'text')
json_data <- fromJSON(text_data)
json_data$timeToArrive = minSec(json_data$timeToStation)
json_data$bound <- substr(as.character(json_data$platformName),1,1)
json_data$platform <- substrRight(as.character(json_data$platformName),1)
cleaned_data <- subset(json_data,boundDirect(json_data$bound) == input$direction)
final_data <- cleaned_data[c('platform','towards','timeToArrive','currentLocation')]
colnames(final_data) <- c('Plat.','To','ETA','Current Loc.')
final_data <- final_data})
但出现以下错误:
Warning: Error in colnames<-: attempt to set 'colnames' on an object with less than two dimensions
非常感谢任何帮助!
提前致谢,
托米
答案 0 :(得分:0)
什么行引发错误?尝试使用traceback()
获取callstack和违规行。
只要注意它,看起来你在(空)行位置和列位置之间缺少一个逗号。第三行到最后一行可能需要更改为
final_data <- cleaned_data[, c('platform','towards','timeToArrive','currentLocation')
BTW,如果你做这样的事情,重命名列会更安全。如果缺少列,则错误消息应该更好。
cleaned_data <- json_data %>%
dplyr::filter(boundDirect(.$bound) == .$direction) %>%
dplyr::rename_(
'Plat.' = 'platform',
'To' = 'towards',
'ETA' = 'timeToArrive',
'Current Loc.' = 'currentLocation'
)