Search code examples
regexrdataframestrsplit

how to split column by | into multiple columns


In R: I have a dataframe of many rows but only one column. Each row has a long string of characters, periodically punctuated with a | mark. I want to split the characters every time there is a | mark, so that there are many columns.

1995-01-01|33.399999999999999|40.299999999999997|35.399999999999999|35.0|37.200000000000003|23.399999999999999|23.199999999999999|47.399999999999999|49.200000000000003|49.200000000000003|48.100000000000001|42.299999999999997|58.200000000000003|17.399999999999999|50.700000000000003|5.2999999999999998|20.600000000000001|38.5|43.299999999999997 etc.

Each string begins with a date and then has numbers corresponding to cities. The variable names are also listed as one string, and they need to be separated by the "." mark.

date.abilene_tx.akron_oh.albany_ny.albuquerque_nm.allentown_pa.amarillo_tx.anchorage_ak.asheville_nc.atlanta_ga etc.

Any help much appreciated!


Solution

  • You should have loaded the data from file with this command:

     dat <- read.table(filename, sep="|")
    

    This will handle the lines separated with "|" but you then say "strings" are separated with ".", so if these are somehow mixed in htat text file you may need to do some preprocessing with input first with readLines().