[英]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.