嗨,我是新来的R和我工作的一个项目,我需要对我的代码帮助。 我尝试使用不同的读取功能,读取数据,但它不给我我想要的东西。 我希望能够定义如何正确读取文件的格式。
这里是我的数据看起来像在TXT文件中的一个例子。 它是由逗号分隔并分号所以它难以阅读。
08.08.2019 23:44:25,036 : FB_Packet detection: no pack regognised, Graber is not free
08.08.2019 23:43:40,087 : FB_Packet detection: Packet with axis, width: 95.6640014648438
我想达到4列与
08.08.2019, 23:43:40,087, FB_Packet detection: no pack recognised, Graber is not free
先感谢您
本来我是想办法来提取要与正则表达式的作品; 这取决于是否格式化任何变得更加复杂,这可能是最好的选择。 否则,你可以用几次传球尝试这种tidyr::separate
的文本为每个不同的分隔符拆分成多列,一次( " : "
, " "
和", "
)。
取而代之的读取文件的东西准备好与解析在read.delim
或类似的东西,只是阅读文本的线条和自己分割。 然后分离各那些定界符的; 因为这滴分离柱,你没有删除任何文本大功告成提取之后。
library(tidyr)
txt <- readr::read_lines("08.08.2019 23:44:25,036 : FB_Packet detection: no pack regognised, Graber is not free
08.08.2019 23:43:40,087 : FB_Packet detection: Packet with axis, width: 95.6640014648438")
data.frame(txt) %>%
separate(txt, into = c("datetime", "string"), sep = " : ") %>%
separate(datetime, into = c("date", "time"), sep = " ") %>%
separate(string, into = c("txt1", "txt2"), sep = ", ")
#> date time txt1
#> 1 08.08.2019 23:44:25,036 FB_Packet detection: no pack regognised
#> 2 08.08.2019 23:43:40,087 FB_Packet detection: Packet with axis
#> txt2
#> 1 Graber is not free
#> 2 width: 95.6640014648438
我想,去这里最好的办法是在文本编辑器打开该文件,并替换所有“:”(包括空格)的一个逗号。 你必须包括所有的空间,因为“:”在你行的其他部分使用。 然后,阅读中的R通常