在R中粘贴多个元素

时间:2016-10-26 12:32:13

标签: r paste

我使用for语句创建此代码。 (此代码的主要目的是列出通过httr和rvest获得的不同网页)

r = "asdgkjkhdf"
t = "osrt"

all = c()
for(i in 1:400)
{
   y   = paste(r, i, sep = '')
   d   = paste(y, t, sep = '')
   all = c(all, d)
}
all

我得到了类似的东西(粘贴的数字实际上在每个结果中累积)

[1]asdgkjkhdf1osrt
[2]asdgkjkhdf12osrt
[3]asdgkjkhdf123osrt
[4]asdgkjkhdf1234osrt
...

但是我想要这样的结果,无论我输入多少数字' for()' function。

[1]asdgkjkhdf1osrt
[2]asdgkjkhdf2osrt
...
[400]asdgkjkhdf400osrt

如上所述

为了获得我想要的结果,我应该改变什么? 我应该使用paste(substr(), substr(), sep='')吗?

1 个答案:

答案 0 :(得分:1)

如果您真的想使用for语句,可以使用以下

r   = "asdgkjkhdf"
t   = "osrt"
all = c()

for (idx in 1:400) 
   all = c(all, paste0(r, idx, t))

但是,在R中,您应该更喜欢没有for语句的代码,因为一般来说,这样会降低可读性并损害性能。没有for-statement的解决方案(由Roland在评论中给出)等于

all <- paste0(r, 1:400, t)

请注意,paste0("string")只是paste("string", sep='')的简短表示法。