read.delim不给我我想要的(read.delim not giving me what i

2019-10-29 16:38发布

嗨,我是新来的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

先感谢您

Answer 1:

本来我是想办法来提取要与正则表达式的作品; 这取决于是否格式化任何变得更加复杂,这可能是最好的选择。 否则,你可以用几次传球尝试这种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


Answer 2:

我想,去这里最好的办法是在文本编辑器打开该文件,并替换所有“:”(包括空格)的一个逗号。 你必须包括所有的空间,因为“:”在你行的其他部分使用。 然后,阅读中的R通常



文章来源: read.delim not giving me what i want
标签: r dplyr