代码之家  ›  专栏  ›  技术社区  ›  Oct

分隔符位置错误

  •  2
  • Oct  · 技术社区  · 7 年前

    Name        Appointment
    John Doe    12:30
    Jane Doe    1:00
    Rick Smith  11:45
    Susy Smith  10:15
    

    但是相反,我得到了

    Name        Appointment
    John Doe    12:30
    Jane        Doe 1:00
    Rick Smith  11:45
    Susy        Smith  10:15
    

    没有真正的模式,因为这是用户错误。我用substr()开发了一种变通方法来提取约会时间,但后来我就失去了姓氏。

    separate(Data, col = Appointment, c("last", "time"), " ")
    

    Name        Last    Time
    John Doe    12:30
    Jane        Doe     1:00
    Rick Smith  11:45
    Susy        Smith   
    

    抱歉,如果这是一个愚蠢的问题!

    1 回复  |  直到 7 年前
        1
  •  4
  •   akrun    7 年前

    我们可以用 readLines read.csv

    df1 <- read.csv(text=sub("([a-z])\\s+([0-9])", "\\1, \\2", lines[-1]),
     header = FALSE, col.names = strsplit(lines[1], "\\s+")[[1]], stringsAsFactors = FALSE)
    

    要删除“Name”中的多余空格,请使用 gsub

    df1$Name <- gsub("\\s+", " ", df1$Name)
    

    给我们输出

    df1
    #        Name Appointment
    #1   John Doe       12:30
    #2   Jane Doe        1:00
    #3 Rick Smith       11:45
    #4 Susy Smith       10:15
    

    数据

    lines <- readLines("file.txt")