R 如何打印取决于矩阵长度的字符串?

R 如何打印取决于矩阵长度的字符串?,r,R,我试图打印数据文件,将饲料另一个软件AMPL解算器 因此,我需要以解算器能够理解的方式打印数据 在这里,我想打印尽可能多的I1,I2,I3,I4。。。在给定的矩阵中有我循环的行。我想将此字符串存储在变量setI中,我将在write.table命令中调用该变量 我已经尝试了粘贴和cat功能,但它们都不能产生我想要的效果 x1.list <- matrix(rbind(c(1,2),c(3,4)), ncol = 2) for (j in 1:nrow(x1.list)) { set

我试图打印数据文件,将饲料另一个软件AMPL解算器

因此,我需要以解算器能够理解的方式打印数据

在这里,我想打印尽可能多的I1,I2,I3,I4。。。在给定的矩阵中有我循环的行。我想将此字符串存储在变量setI中,我将在write.table命令中调用该变量

我已经尝试了粘贴和cat功能,但它们都不能产生我想要的效果

x1.list <- matrix(rbind(c(1,2),c(3,4)), ncol = 2)

for (j in 1:nrow(x1.list)) {
    setI <- cat(paste("I",j))
  }
通过此命令,我接收I 1I 2,它不会存储到setI中。它应该是I1,I2,没有引号

欢迎任何帮助

x1.list <- matrix(rbind(c(1,2),c(3,4)), ncol = 2)

setI <- NULL
for (j in 1:nrow(x1.list)) {
  setI <- paste(setI,"I",j,",",sep="")
}

library('stringi')
setI <- stri_sub(setI, 1, -2)

在您的情况下,这将返回一个输出集I作为I1,I2。

如果您只尝试catpaste0'I',1:nrowx1.list,collapse=','?cat不会返回任何内容。我建议setI@utubun您的解决方案非常有效。我加上sep=,得到了I1,I2,I3,I4。你知道是否可以删除最后一个逗号吗?一开始我没弄明白。查看更新的注释:只需将sep=','更改为collapse=','这太完美了,非常感谢@这也是一个很好的解决方案,但是它可以在没有引号的情况下存储吗?事实上,我将在那里命名它:write.tablePasseti;,x[1],x[2],我需要不带引号的。结果是‘I1,I2;118, 119`. 非常感谢。只需使用命令noquotesetI,您就可以在不使用引号的情况下获得它。