考虑具有1200条记录和30个变量的数据框。 我想将数据帧分成六个样本,每个样本大小为200。 到目前为止,我尝试使用以下R代码:
[
"ECDHE-RSA-AES256-SHA384",
"DHE-RSA-AES256-SHA384",
"ECDHE-RSA-AES256-SHA256",
"DHE-RSA-AES256-SHA256",
"ECDHE-RSA-AES128-SHA256",
"DHE-RSA-AES128-SHA256",
"HIGH",
"!aNULL",
"!eNULL",
"!EXPORT",
"!DES",
"!RC4",
"!MD5",
"!PSK",
"!SRP",
"!CAMELLIA"
]
以上代码结果带有未绑定错误,因为我无法访问具有0索引值的第一个记录,而是在R中我们可以访问索引值为1的第一个记录。
createSample<-function(df)
{
totalSample<-ceiling((nrow(df)/200))
sampleSize=200
for(i in 1:totalSample)
{
## user should have to define file name and start & end row
file <-'demo.csv'
start <- (i-1)*sampleSize
end <- (i*sampleSize)
function1(file,start,end) ## this will call to another function then again control reaches here
}
}
createSample(rawData) ## function call
答案 0 :(得分:1)
由于我们不知道OP的帖子中提到的第二个功能,我们可以跳过该部分,而是将数据集拆分为list
data.frame
个每n行(即200行)。如果数据集的list
不是n的倍数,则最后nrow
元素将具有剩余行。
createSample <- function(df, n, Sample=FALSE){
SeqN <- seq_len(nrow(df))
g1 <- (SeqN-1)%/%n +1
Start <- unname(tapply(SeqN, g1, head, 1))
End <- unname(tapply(SeqN, g1, tail, 1))
if(Sample){
g1 <- sample(g1)
}
list(Splitdat=lapply(split(SeqN, g1), function(i) df[i,]),
Start=Start,
End=End)
}
createSample(yourdat, 200)
createSample(yourdat, 200, TRUE)
注意:添加了一个随机sample
函数中观察结果的选项。