首页 > 解决方案 > 在 R 中使用 paste() 编写扩展的文本

问题描述

我正在尝试将paste以下所有paste0s 作为一个连接的文本。但我还需要将每个放在单独的行上,一个接一个,例如:

"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")

标签: rregextextcharpaste

解决方案


你太接近了:使用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")

也给出了想要的结果


推荐阅读