[英]How do I save the results of a for-loop as a character string?
我已经成功地用类似下面的东西自动化了一些乏味的代码编写:
codes<-c("code1", "code2","code3")
for(i in codes){print(paste0("repetitivetext",i))}
产生类似于以下 output 的内容:
"repetitivetextcode1"
"repetitivetextcode2"
"repetitivetextcode3"
现在我想添加代码的开头和结尾。 我写:
paste0("beginning",for(i in codes){print(paste0("repetitivetext",i))},"end")¨
希望得到类似的东西:
beginningrepetitivetextcode1repetitivetextcode2repetitivetextcode3end
相反,我得到:
"repetitivetextcode1"
"repetitivetextcode2"
"repetitivetextcode3"
"beginningend"
如何获得我想要的 output? 例如,是否有一种方法可以将 for 循环的 output 折叠成单个字符串(我已经在 paste0 中尝试过折叠选项)?
此代码段必须与其他类似创建的段粘贴在一起,因此必须以正确的顺序保存这些行,并且需要将它们保存为单个字符串。
首先,定义一个空向量output
来保存for
循环的结果(如果你想使用一个,因为有其他人提到的更经济的解决方案):
output <- c()
for(i in codes){
output[i] <- paste0("repetitivetext",i)
}
然后简单地output
paste0
周围的文本元素:
paste0("beginning", output, ,"end")
[1] "beginningrepetitivetextcode1end" "beginningrepetitivetextcode2end" "beginningrepetitivetextcode3end"
如果你想把它全部放在一个块中,添加collapse
参数:
paste0("beginning",output,"end", collapse = "")
[1] "beginningrepetitivetextcode1endbeginningrepetitivetextcode2endbeginningrepetitivetextcode3end"
数据:
codes<-c("code1", "code2","code3")
没有循环的collapse
应该这样做:
paste0('beginning',
paste0('repetitivetext', codes, collapse = ''),
'end'
)
output:
## [1] "beginningrepetitivetextcode1repetitivetextcode2repetitivetextcode3end"
在某些情况下,R 中的 Actaully for
循环可以用向量化函数代替:
codes <- c("code1", "code2", "code3")
codes2 <- paste0("repetitivetext", codes)
print(codes2)
这是 output:
[1] "repetitivetextcode1" "repetitivetextcode2" "repetitivetextcode3"
结果字符串也可以在没有任何循环的情况下实现:
paste0("beginning",
paste0(codes2, collapse = ""),
"end"
)
你得到以下 output:
[1] "beginningrepetitivetextcode1repetitivetextcode2repetitivetextcode3end"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.