我有一个txt文件,我在R中解析它以获取一些统计信息。它看起来像这样:
**New Session**
Event A
Event B
Event B
Event C
Event A
Event C
...
**New Session**
...
**New Session**
...
我需要做的是在发生某些事件时跟踪它们。我想收到这样一张桌子:
Event A | Session 1
Event A | Session 1
Event A | Session 2
Event A | Session 3
我对解析没有任何问题,但我不知道如何将各个事件连接到它们发生的会话。我没有时间戳可以使用。
一种方法可能是在包含一个会话的单个文本文件中剪切文件。但是我打赌有一种方法可以在解析特定事件时对会话进行计数?
如果我不得不将其剪掉:如何让R解析某个字符串的所有文件?
答案 0 :(得分:1)
我不确定R是否支持断言和内联修饰符 将假设它为此目的。
您可以将会话与一系列事件相关联,但您无法完成所有事件 立刻。
您需要一般的正则表达式来捕获每个会话以及与之相关的所有事件
那个会话。
这是(?ms)^(\*\*New[ ]Session\*\*)((?:(?!^\1).)*)
,您可以在全球范围内运行它
在一个循环中。
(?ms) # Modifiers: multi-line and dot-all
^ # Beginning of line
( \*\*New [ ] Session\*\* ) # (1), The sessions info, specify
( # (2 start), All the Events
(?:
(?! ^ \1 ) # Assert, not a new session
.
)*
) # (2 end)
在每场比赛中,第1组是会话,第2组是 ALL 事件 将会话存储在一个结构中,然后解析所有个体的组2 您可以添加到结构的事件。
继续进行,直到整个文件被解析 这就是它的全部内容。
如果您需要将所有会话与事件相关联 哈希最适合。
就像我说的那样,我不知道R,但即使你只有名单,也可以做到。
对于散列,在每次匹配时,解析事件,然后将会话附加到
事件哈希键的值数组。