我有一个看起来像这样的字符串:
data
我想要的是将它带到这种格式:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title='Title'),
dashboardSidebar(
sidebarMenu(
menuItem('Models', tabName='Models',
menuSubItem('Model1', tabName='Model1'),
menuSubItem('Model2', tabName='Model2')
),
tags$head(tags$script(HTML('$(document).ready(function() {$(".treeview-menu").css("display", "block");})')))
)
),
dashboardBody(
tabItems(
tabItem(tabName='Model1',
h1("Model 1"),
radioButtons('data1', 'Select Data',
choices=list("Use Old Data"='old', "Use New Data"='new')
),
verbatimTextOutput('out1')
),
tabItem(tabName='Model2',
h1("Model 2"),
radioButtons('data2', 'Select Data',
choices=list("Use Old Data"='old', "Use New Data"='new')
),
verbatimTextOutput('out2')
)
)
)
)
server <- function(input, output, session) {
output$out1 <- renderPrint(input$data1)
output$out2 <- renderPrint(input$data2)
}
shinyApp(ui, server)
所以在每隔一个数字中用空格替换逗号。是否有简单的pythonic方法来做到这一点。
现在我正在尝试使用split函数创建一个列表,然后遍历列表。但这似乎并不简单。
答案 0 :(得分:12)
首先,让我们导入正则表达式模块并定义您的>>> import re
>>> coords = "86.2646484375,23.039297747769726,87.34130859375,22.59372606392931,88.13232421875,24.066528197726857"
变量:
>>> re.sub('(,[^,]*),', r'\1 ', coords)
'86.2646484375,23.039297747769726 87.34130859375,22.59372606392931 88.13232421875,24.066528197726857'
现在,让我们用空格替换每一秒逗号:
(,[^,]*),
正则表达式r'\1 '
查找逗号对。替换文本Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/fontbox/type1/DamagedFontException
保留第一个逗号,但用空格替换第二个。
答案 1 :(得分:3)
这种作品:
>>> s = coords.split(',')
>>> s
['86.2646484375', '23.039297747769726', '87.34130859375', '22.59372606392931', '88.13232421875', '24.066528197726857']
>>> [','.join(i) for i in zip(s[::2], s[1::2])]
['86.2646484375,23.039297747769726', '87.34130859375,22.59372606392931', '88.13232421875,24.066528197726857']
答案 2 :(得分:1)
pythonic的方法是拆分字符串并再次连接它,使用交替的分隔符:
from itertools import chain, cycle, izip
coords = ''.join(chain.from_iterable(izip(coords.split(','), cycle(', '))))