Jua*_*los 4 r paste dataframe stringr
也许它\xc2\xb4是无稽之谈,但我\xc2\xb4一直在玩paste和paste0但没有成功。
\n我的数据框看起来像这样
\nstck <-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")\nRun Code Online (Sandbox Code Playgroud)\n我\xc2\xb4m 尝试生成如下代码:N83_01, N83_02, ...., N83_10
也就是说,我想创建一个代码,粘贴当年的最后两个数字加上运输编号(以“两个数字”格式)。
\n到目前为止,我无法\xc2\xb4t找到粘贴“N”的方法。这就是我所拥有的
\nstck$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="_")))\nRun Code Online (Sandbox Code Playgroud)\n我怎样才能得到正确的输出?提前致谢。
\n用于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)
您还可以将所有内容与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)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |