无法在一个.csv

时间:2019-01-18 16:08:33

标签: r loops

再次

如果这是一个小问题,我深表歉意。我对R还是很陌生,但我决心要学习。我有一个正在使用的原始.csv文件(我们称其为Original.Data)。我基本上是在重组该电子表格。我正在将每一行转换为一列,然后使用bind_rows将每一行堆叠为彼此下面的列。

我创建了必要的代码来组织第一行。现在,我正在尝试创建一个循环以对原始文件中的所有行执行此操作。这是我创建的代码:

行1:3基本上是标题,并且最终被删除,但尚未终止,因为它们起了最初的作用。最终电子表格只需要第5行。

    New.Data <-data.frame(t(Original.Data[c(1:3,5),]))

    colnames(New.Data) <-c("patid","Day","Week","SD")
    New.Data[,1] <- New.Data[1,4]

    New.Data$Day <- as.numeric(as.character(New.Data$Day))
    New.Data$SD <- as.numeric(as.character(New.Data$SD))
    New.Data$Week <- as.numeric(as.character(New.Data$Week))

    New.Data <- New.Data[ which(New.Data$Day<=New.Data[3,4]),]

最后一行正在创建一个基本电子表格,我正在将所有数据传输到该电子表格。“ Base”已经在手之前创建。

    Final.Base <-bind_rows(Base,New.Data)

我的想法基本上是像将New.Data命名为New.Data1,然后让循环为每一行创建多个New.Data,并将它们基本上都绑定到Final.Base中。因此,将第1行(实际上是第5行)创建到New.Data 1中,将第2行创建到New.Data 2中,等等。

另外,在我的第一行代码中:

    New.Data <-data.frame(t(Original.Data[c(1:3,5),]))

我认为唯一需要更改的是最后一个数字“ 5”。在循环的每次迭代中,它都需要增加一个。

感谢您的所有帮助。

1 个答案:

答案 0 :(得分:0)

我不确定您要做什么。一点点数据就可以了。但是,这听起来像是您要的东西。它需要一列并将其附加到下一列,依此类推,以为您提供堆叠值的向量”

mtcars

out <- c()
for(i in 1:ncol(mtcars)){
  intermediate <- mtcars[,i]

  out <- c(out, intermediate)
}