将数据框追加到R中的列表

时间:2018-07-17 09:23:29

标签: r list dataframe

我刚开始使用R编程,对您的了解却很少或根本没有知识。 当我尝试将数据帧追加到列表中时。

我有以下代码:

for(i in 1:NumberOfCoresUse)
{
  if(i != NumberOfCoresUse)
  {
    ListOfData <- list(unlist(ListOfData),RawTrainData[((i-1)*ApproximateRowsPerCore+1):(i*ApproximateRowsPerCore),])
  } else
  {
    ListOfData <- list(unlist(ListOfData),RawTrainData[((i-1)*ApproximateRowsPerCore+1):(MaxRecords),])
  }
}

当我尝试以下操作时,数据框将完美添加到列表中:

ListOfData <- list(RawTrainData[((i-1)*ApproximateRowsPerCore+1):(i*ApproximateRowsPerCore),])

或者当我编写以下代码时,两个数据帧会完美地添加到列表中:

ListOfData <- list(RawTrainData[((i-1)*ApproximateRowsPerCore+1):(i*ApproximateRowsPerCore),],RawTrainData[((i+1-1)*ApproximateRowsPerCore+1):((i+1)*ApproximateRowsPerCore),])

1 个答案:

答案 0 :(得分:0)

不需要循环,请尝试使用repsplit

df <- data.frame(1, 1:10, sample(LETTERS[1:3], 10, replace = TRUE))
NumberOfCoresUse <- 3
split(df, sort(rep(1:NumberOfCoresUse, length.out=nrow(df))))
$`1`
  X1 X1.10 sample.LETTERS.1.3...10..replace...TRUE.
1  1     1                                        C
2  1     2                                        B
3  1     3                                        A
4  1     4                                        A

$`2`
  X1 X1.10 sample.LETTERS.1.3...10..replace...TRUE.
5  1     5                                        B
6  1     6                                        C
7  1     7                                        A

$`3`
   X1 X1.10 sample.LETTERS.1.3...10..replace...TRUE.
8   1     8                                        C
9   1     9                                        B
10  1    10                                        B

?split“从split返回的值是包含组值的向量的列表”因此,您将输入数据帧划分为定义的部分。

?rep用于定义拆分分组。