【问题标题】:Using R to split text into a labeled table使用 R 将文本拆分为带标签的表格
【发布时间】:2019-08-22 00:24:53
【问题描述】:

我有一个格式如下的数据集

"Name:\t\t Foo Bar \t Account Name: \t\t USERIDXXX \t" 

作为 data.table 中的一列。我想把它变成类似的东西

Name:      Account Name: 
Foo Bar    USERIDXXX

我尝试了几个 data.table 函数,但都没有成功。

library(data.table)
x <- as.data.table("Name:\t\t Foo Bar \t Account Name: \t\t USERIDXXX \t")

x[, variables := tstrsplit(V1, "\t")]

需要一个导出值的表格。我收到警告和以下输出:

在 [.data.table(x, , :=(variables, tstrsplit(V1, "\t"))) 中: 提供 6 个项目分配给列“变量”的 1 个项目(5 个未使用)

                                          V1 variables
1: Name:\t\t Foo Bar \t Account Name: \t\t USERIDXXX \t     Name:

【问题讨论】:

    标签: r regex data.table


    【解决方案1】:

    假设输入如最后的注释所示。用换行符替换空格、制表符、空格并在每行末尾添加一个换行符。然后是dcf格式,可以用read.dcf读入

    s2 <- gsub("( \t )|$", "\n", s)
    read.dcf(textConnection(s2))
    

    给出这个字符矩阵:

         Name      Account Name
    [1,] "Foo Bar" "USERIDXXX" 
    [2,] "Foo Bar" "USERIDXXX" 
    

    没有使用任何包。

    注意

    s <- "Name:\t\t Foo Bar \t Account Name: \t\t USERIDXXX \t"
    s <- c(s, s)
    

    这给出了以下输入:

    s
    ## [1] "Name:\t\t Foo Bar \t Account Name: \t\t USERIDXXX \t"
    ## [2] "Name:\t\t Foo Bar \t Account Name: \t\t USERIDXXX \t"
    

    【讨论】:

      猜你喜欢
      • 2015-08-07
      • 2023-04-02
      • 2014-09-04
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多