我刚开始使用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),])
答案 0 :(得分:0)
不需要循环,请尝试使用rep
和split
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
用于定义拆分分组。