R:将字符串拆分为多列

R: Splitting a string into multiple columns

我正在使用数据框中的以下列字符串

s <- "[08/26/2021 06:58:12 260] - MacId: 40_E3_D6_CA_56_5C RSSI: -92"

我想以某种方式将其分成以下列

有没有函数可以这样做?

您可以使用 strcapture 并传递模式来提取所需的数据。

s <- "[08/26/2021 06:58:12 260] - MacId: 40_E3_D6_CA_56_5C RSSI: -92"

result <- strcapture('\[(.*)\] - MacId: (.*) RSSI: (.*)', s, 
           proto = list(Datetime = character(), MacId = character(), 
                        RSSI = numeric()))

result
#                 Datetime             MacId RSSI
#1 08/26/2021 06:58:12 260 40_E3_D6_CA_56_5C  -92

如果字符串存在于数据帧中,则可以在 tidyr::extract -

中使用相同的正则表达式模式
tidyr::extract(data.frame(s), s, c('Datetime', 'MacId', 'RSSI'), 
               "\[(.*)\] - MacId: (.*) RSSI: (.*)")