Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
260 views
in Technique[技术] by (71.8m points)

r - splitting a string of variable length


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
spl <- strsplit(ex_str, " ")[[1]]
out <- c()
while (length(spl) > 0) {
  ind <- which((cumsum(nchar(spl)) + seq_along(spl)) > 260)[1]
  if (is.na(ind)) ind <- length(spl) + 1L
  if (ind == 1L) {
    warning("first word is too long, adding anyway", call. = FALSE)
    out <- c(out, spl[1])
    spl <- spl[-1]
  } else {
    out <- c(out, paste(spl[seq_len(ind-1)], collapse = " "))
    spl <- spl[-seq_len(ind-1)]
  }
}

nchar(out)
# [1] 253 156

out
# [1] "This has an advantage of avoiding name conflicts i.e. what if you have a function named `DataFrame()` in your global environment. Using `pandas.DataFrame()` ensures that right function is called. To build on it further, python also provides an option of"
# [2] "importing a function with your name of choice i.e. `import pandas as pd`. Now to call out `pandas` internal functions you can use `pd` like `pd.DataFrame()`"                                                                                                 

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...