粘贴具有不同分隔符的 3 个字符串时出现问题

Jua*_*los 4 r paste dataframe stringr

也许它\xc2\xb4是无稽之谈,但我\xc2\xb4一直在玩paste和paste0但没有成功。

\n

我的数据框看起来像这样

\n
stck <-structure(list(haul = 1:11,\n         year = c(1983L, 1983L, 1983L, 1983L, 1983L, 1983L, 1983L, 1983L, 1983L, 1983L, 1983L)),\n         row.names = c(NA, 11L), class = "data.frame")\n
Run Code Online (Sandbox Code Playgroud)\n

我\xc2\xb4m 尝试生成如下代码:N83_01, N83_02, ...., N83_10

\n

也就是说,我想创建一个代码,粘贴当年的最后两个数字加上运输编号(以“两个数字”格式)。

\n

到目前为止,我无法\xc2\xb4t找到粘贴“N”的方法。这就是我所拥有的

\n
stck$cod_lance <- as.factor(ifelse (stck$lance >=1 & stck$lance <10, paste(str_sub(stck$fecha, 3, 4), stck$lance, sep="_0"),\n                                    paste(str_sub(stck$fecha, 3, 4), stck$lance, sep="_")))\n
Run Code Online (Sandbox Code Playgroud)\n

我怎样才能得到正确的输出?提前致谢。

\n

All*_*ron 9

用于paste0避免分隔符。作为第一个参数传递,然后使用or"N"的最后两位数字传递。接下来是下划线,最后是运输编号。如果是个位数,您可以使用以下命令用前导零填充运输编号:stck$yearsubstrstck$year %% 100sprintf

paste0('N', substr(stck$year, 3, 4), "_", sprintf('%02d', stck$haul))
#>  [1] "N83_01" "N83_02" "N83_03" "N83_04" "N83_05" "N83_06" "N83_07"
#>  [8] "N83_08" "N83_09" "N83_10" "N83_11
Run Code Online (Sandbox Code Playgroud)


Mer*_*org 5

您还可以将所有内容与sprintf

sprintf('N%1$d_%2$02d', stck$year %% 100, stck$haul)

# [1] "N83_01" "N83_02" "N83_03" "N83_04" "N83_05" "N83_06"
# "N83_07" "N83_08" "N83_09" "N83_10" "N83_11"
Run Code Online (Sandbox Code Playgroud)