Написание расширенного фрагмента текста с использованием paste () в R - PullRequest
1 голос
/ 10 февраля 2020

Я пытаюсь paste все последующие paste0 s как один связанный текст. Но мне также нужно, чтобы каждый из них находился в отдельной строке, одна за другой, например:

"CI=~Q1+Q2+Q3+Q4+Q5+Q6 ESC=~Q7+Q8+Q9+Q10+Q11+Q12 ICp=~Q13+Q14+Q15+Q16+Q17+Q18 . . . "

Я пытался создать объект model для достижения своей цели. Все работает отлично, за исключением того, что каждый paste0 не находится на отдельной строке.

Исправлено ли это в BASE R?

CI <- paste0("CI=~", paste0("Q", 1:6, collapse = "+"))

ESC <- paste0("ESC=~", paste0("Q", 7:12, collapse = "+"))

ICp <- paste0("ICp=~", paste0("Q", 13:18, collapse = "+"))

 LC <- paste0("LC=~", paste0("Q", 19:24, collapse = "+"))

 CR <- paste0("CR=~", paste0("Q", 25:30, collapse = "+"))

 ASE <- paste0("ASE=~", paste0("Q", 31:36, collapse = "+"))

 SOM <- paste0("SOM=~", paste0("Q", 37:42, collapse = "+"))

 UP <- paste0("UP=~", paste0("Q", 43:48, collapse = "+"))

 VL <- paste0("VL=~", paste0("Q", 49:54, collapse = "+"))

 model <- paste(CI, ESC, ICp, LC, CR, ASE, SOM, UP, VL, sep = "\n")

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Мы можем использовать cat, если это просто print

cat(paste(CI, ESC, ICp, LC, CR, ASE, SOM, UP, VL, sep = "\n"), '\n')
1 голос
/ 10 февраля 2020

Вы ооочень близки: используйте аргумент collapse для paste0, но передайте ему вектор:

model <- paste0(c(CI, ESC, ICp, LC, CR, ASE, SOM, UP, VL), collapse = "\n")

cat(model)

CI=~Q1+Q2+Q3+Q4+Q5+Q6
ESC=~Q7+Q8+Q9+Q10+Q11+Q12
ICp=~Q13+Q14+Q15+Q16+Q17+Q18
LC=~Q19+Q20+Q21+Q22+Q23+Q24
CR=~Q25+Q26+Q27+Q28+Q29+Q30
ASE=~Q31+Q32+Q33+Q34+Q35+Q36
SOM=~Q37+Q38+Q39+Q40+Q41+Q42
UP=~Q43+Q44+Q45+Q46+Q47+Q48
VL=~Q49+Q50+Q51+Q52+Q53+Q54

Правка:

Просто, чтобы вас не смущать, paste вместо paste0 работает также:

model <- paste0(c(CI, ESC, ICp, LC, CR, ASE, SOM, UP, VL), collapse = "\n")

Также выдает желаемый результат

...