Multiple Separators for the same file input R

后端 未结 3 1141
一个人的身影
一个人的身影 2020-12-30 08:17

I\'ve had a look for answers, but have only found things referring to C or C#. I realise that much of R is written in C but my knowledge of it is non-existent. I am also re

相关标签:
3条回答
  • 2020-12-30 08:18

    I find the functions in package splitstackshape convenient in cases like this.

    library(splitstackshape)
    
    # split concatenated column by `_`
    results2 <- concat.split(data = results, split.col = "V3", sep = "_", drop = TRUE)
    
    # split the remaining concatenated part by `-`
    results3 <- concat.split(data = results2, split.col = "V3_5", sep = "-", drop = TRUE)
    results3
    
    0 讨论(0)
  • 2020-12-30 08:32
    library(stringr)
    
    results <- read.delim("~/results", header=F)
    results <- cbind(results,str_split_fixed(results$V3, "[_-]", 9))
    

    (this assumes you're OK with having the original column still in place)

    0 讨论(0)
  • 2020-12-30 08:36

    Try this:

    # dummy data
    df <- read.table(text="
    Name    Name1   *XYZ_Name3_KB_MobApp_M-18-25_AU_PI ANDROID  2013-09-32 14:39:55.0   2013-10-16 13:58:00.0   0   218 4   93  1377907200000
    Name    Name2   *CCC_Name3_KB_MobApp_M-18-25_AU_PI ANDROID  2013-09-32 14:39:55.0   2013-10-16 13:58:00.0   0   218 4   93  1377907200000
    ", as.is = TRUE)
    
    # replace "_" to "-"
    df_V3 <- gsub(pattern="_", replacement="-", df$V3, fixed = TRUE)
    
    # strsplit, make dataframe
    df_V3 <- do.call(rbind.data.frame, strsplit(df_V3, split = "-"))
    
    # output, merge columns
    output <- cbind(df[, c(1:2)],
                    df_V3,
                    df[, c(4:ncol(df))])
    

    Building on the comments below, here is another related option, but one which uses read.table instead of strsplit.

    splitCol <- "V3"
    temp <- read.table(text = gsub("-", "_", df[, splitCol]), sep = "_")
    names(temp) <- paste(splitCol, seq_along(temp), sep = "_")
    cbind(df[setdiff(names(df), splitCol)], temp)
    
    0 讨论(0)
提交回复
热议问题