Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过double for loop生成数据时,如何将数据及其标签导出到单个excel工作表中_R - Fatal编程技术网

通过double for loop生成数据时,如何将数据及其标签导出到单个excel工作表中

通过double for loop生成数据时,如何将数据及其标签导出到单个excel工作表中,r,R,如何将数据及其标签、标题、有关数据的信息导出到单个excel表中,以供外行理解,当数据在单个迭代的不同阶段通过double for loop生成时。 代码: 在第一次迭代中,输出为: [1] "treatments" [1] 3 [1] "The Initial Block(s) is/are=" [1] 0 2 1 [1] "Design Matrix is" [,1] [,2] [,3] [1,

如何将数据及其标签、标题、有关数据的信息导出到单个excel表中,以供外行理解,当数据在单个迭代的不同阶段通过double for loop生成时。 代码:

在第一次迭代中,输出为:

        [1] "treatments"
        [1] 3
        [1] "The Initial Block(s) is/are="
        [1] 0 2 1
        [1] "Design Matrix is"
        [,1] [,2] [,3]
 [1,]    0    1    2
 [2,]    2    0    1
 [3,]    1    2    0
在第二次迭代时,输出为

  [1] "treatments"
  [1] 5
  [1] "The Initial Block(s) is/are="
  [1] 0 4 1
  [1] "The Initial Block(s) is/are="
  [1] 0 0 1
  [1] "Design Matrix is"
       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    0    1    2    3    4    0    1    2    3     4
 [2,]    4    0    1    2    3    0    1    2    3     4
 [3,]    1    2    3    4    0    1    2    3    4     0
等等

请考虑

  • 输出可以按照文件的单个excel表中所述的顺序进行

  • 矩阵可能是一个细胞接一个细胞——我试过了,但它粘贴在单个细胞中

  • 请询问是否有不明确的地方

  • 代码非常长,因此请以他/她自己为例


  • 作为记录,这是一种非常糟糕的信息显示方式

    library(XLConnect)
    wb <- loadWorkbook("~/Desktop/so/terrible_idea.xlsx",create = TRUE)
    sht <- "Horrible Way To Display Data"
    createSheet(wb,name = sht)
    
    k=3
     t=2
       o=seq(from=1, to=t, by=1)
        for(i in 1:t){
            v=((o[i])+1)
            print ("treatments")
            appendWorksheet(wb,data.frame("treatments"),sheet = sht,header = FALSE)
            row_counter <- row_counter + 1
            print (v)
            appendWorksheet(wb,as.data.frame(v),sheet = sht,header = FALSE)
            h=seq(from=0, to=o[i], by=1)
            q1=NULL
            q2=NULL
            x1=NULL
               for(j in 1:o[i]){
                  q1=c((v-(4*h[j]+1)))
                  q2=c(((4*h[j])+2))
                  T=c(q1,q2)
                  y=c(0)
                  IB=c(y,cumsum(T)%%v)
                  print("The Initial Block(s) is/are=")
                  appendWorksheet(wb,data.frame("The Initial Block(s) is/are="),sheet = sht,header = FALSE)
                  print(IB)
                  appendWorksheet(wb,as.data.frame(IB),sheet = sht,header = FALSE)
                  row_counter <- row_counter + nrow(as.data.frame(IB))
                       p=seq(from=0, to=v-1, by=1)
                       l=NULL
                         for(i in 1:k){
                         for(j in 1:v){
                         l=c(l,rep((IB[i]+p[j]+v)%% v))
                         }
                        }
                  x= matrix(c(l),nrow=k,ncol=v,byrow = TRUE)
                  x1=cbind(x1,x)
                    }
             print ("Design Matrix is")
             appendWorksheet(wb,data.frame("Design Matrix is"),sheet = sht,header = FALSE)
             print (x1)
             appendWorksheet(wb,as.data.frame(x1),sheet = sht,header = FALSE)
           }
    
    saveWorkbook(wb)
    
    库(XLConnect)
    
    wb在这方面有两个专门的包。你看了吗?你看过文件了吗?你试过这些例子了吗?当我的例子可能会在某种程度上偏离你的需求,导致你抱怨我的解决方案不起作用,然后你会要求我解决这个“问题”时,我有什么动机来编写我自己的示例代码?@ZaheerAbbas,最好不要在这里发布整个项目不,但是,如果你能做一个小玩具的例子,你的循环,这会产生一个小4x4矩阵。人们可以帮助你指出你的错误所在。想一想你的项目的一个最新版本,它能找到问题的根源。我们不想要你的全部代码。创建一个小的、可复制的示例是你的工作。我认为将它作为PDF从R创建为文本和表格更为合理,然后如果人们需要数据,则单独提供矩阵。谢谢亲爱的。我正在尝试安装所有需要的软件包。我会让您知道它是否有效。我已经安装了包
    XLConnect
    ,但仍然存在以下错误
    加载所需包:XLConnectJars加载所需包:rJava错误:。在'rJava'的loadNamespace()中onLoad失败,详细信息:call:fun(libname,pkgname)错误:无法从注册表中确定JAVA_HOME错误:无法加载程序包“rJava”
    @ZaheerAbbas如果您费心搜索该错误消息(正如我刚才所做的),您将了解到这仅仅意味着您的计算机上没有安装JAVA(或者说明安装位置的注册表已损坏)非常感谢,通过这种方式,初始块的值出现在一列中,如果将其转换为一行,输出效果会更好。我已经尽了最大努力使用这些代码进行转换,但失败了。再次感谢。
    library(XLConnect)
    wb <- loadWorkbook("~/Desktop/so/terrible_idea.xlsx",create = TRUE)
    sht <- "Horrible Way To Display Data"
    createSheet(wb,name = sht)
    
    k=3
     t=2
       o=seq(from=1, to=t, by=1)
        for(i in 1:t){
            v=((o[i])+1)
            print ("treatments")
            appendWorksheet(wb,data.frame("treatments"),sheet = sht,header = FALSE)
            row_counter <- row_counter + 1
            print (v)
            appendWorksheet(wb,as.data.frame(v),sheet = sht,header = FALSE)
            h=seq(from=0, to=o[i], by=1)
            q1=NULL
            q2=NULL
            x1=NULL
               for(j in 1:o[i]){
                  q1=c((v-(4*h[j]+1)))
                  q2=c(((4*h[j])+2))
                  T=c(q1,q2)
                  y=c(0)
                  IB=c(y,cumsum(T)%%v)
                  print("The Initial Block(s) is/are=")
                  appendWorksheet(wb,data.frame("The Initial Block(s) is/are="),sheet = sht,header = FALSE)
                  print(IB)
                  appendWorksheet(wb,as.data.frame(IB),sheet = sht,header = FALSE)
                  row_counter <- row_counter + nrow(as.data.frame(IB))
                       p=seq(from=0, to=v-1, by=1)
                       l=NULL
                         for(i in 1:k){
                         for(j in 1:v){
                         l=c(l,rep((IB[i]+p[j]+v)%% v))
                         }
                        }
                  x= matrix(c(l),nrow=k,ncol=v,byrow = TRUE)
                  x1=cbind(x1,x)
                    }
             print ("Design Matrix is")
             appendWorksheet(wb,data.frame("Design Matrix is"),sheet = sht,header = FALSE)
             print (x1)
             appendWorksheet(wb,as.data.frame(x1),sheet = sht,header = FALSE)
           }
    
    saveWorkbook(wb)