I wanted to save large copied string as a atomic vector in R. Copied string look like this:
"div_incr, firm_value_1 , firm_value_1_ind , size , size_ind , life_cycle ,
life_cycle_ind , sa_borrowings_scaled_ta"
I wanted to save above string as an atomic vector where every name should appear as an element of vector. I tried this:
var <- c("div_incr, firm_value_1 , firm_value_1_ind , size , size_ind , life_cycle ,
life_cycle_ind , sa_borrowings_scaled_ta")
But this save whole string as single element. I wanted to save like this:
var <- c("div_incr", "firm_value_1", "firm_value_1_ind" , "size" , "size_ind" , "life_cycle" ,
"life_cycle_ind" , "sa_borrowings_scaled_ta")
I know, I can do this manually, but I want some R style to do this.
CodePudding user response:
We may need to either use strsplit
to split at ,
v1 <- strsplit(str1, "\\s*,\\s*")[[1]]
> str(v1)
chr [1:8] "div_incr" "firm_value_1" "firm_value_1_ind" "size" "size_ind" "life_cycle" "life_cycle_ind" "sa_borrowings_scaled_ta"
or scan
v1 <- scan(text = str1, what = "", sep=",", strip.white = TRUE, quiet = TRUE)
v1 <- v1[nzchar(v1)]
-output
> v1
[1] "div_incr" "firm_value_1" "firm_value_1_ind" "size" "size_ind"
[6] "life_cycle" "life_cycle_ind" "sa_borrowings_scaled_ta"
> str(v1)
chr [1:8] "div_incr" "firm_value_1" "firm_value_1_ind" "size" "size_ind" "life_cycle" "life_cycle_ind" "sa_borrowings_scaled_ta"
data
str1 <- "div_incr, firm_value_1 , firm_value_1_ind , size , size_ind , life_cycle , \n life_cycle_ind , sa_borrowings_scaled_ta"
CodePudding user response:
readClipboard() |>
paste(collapse = "") |>
stringr::str_replace_all("[\"|\n]", "") |>
strsplit(",") |>
unlist() |>
trimws()
#[1] "div_incr" "firm_value_1" "firm_value_1_ind"
#[4] "size" "size_ind" "life_cycle"
#[7] "life_cycle_ind" "sa_borrowings_scaled_ta"