如何处理'尝试在R中具有小于二维的错误的对象上设置'colnames'

时间:2017-11-11 03:10:43

标签: r shiny

我在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

非常感谢任何帮助!

提前致谢,

托米

1 个答案:

答案 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'
  )