我有一个包含两列(Time,VA)的文件。该文件很大,我设法读取它在R(使用读取和子集 - 不适用于大文件)。现在,我想根据时间进行抽样,每个样本都有一个样本大小和样本移位。样本量是整个抽样过程的固定值,例如, sampleSize = 10秒。样本移位是每个新样本的起点(在第一个样本之后)。例如,如果sampleShift = 4秒并且sampleSize是10秒,则意味着第二个样本将从5秒开始,并且随着样本样本大小= 10秒增加10秒。对于每个样本,我想将某个函数的值输入到一些计算中。R中的采样和计算
Sampling <- function(values){
# Perform the sampling
lastRowNumber<- #specify the last row manually
sampleSize<-10
lastValueInFile<-lastRowNumber-sampleSize
for (i in 1: (lastValueInFile)){
EndOfShift<-9+i
sample<-c(1:sampleSize)
h<-1
for(j in i:EndOfShift){
sample[h] <- values[j,1]
h<-h+1
}
print(sample)
#Perform the Calculation on the extracted sample
#--Samp_Calculation<-SomFunctionDoCalculation(sample)
}
}
我尝试的问题是: 1)我必须手动指定LASTROW数为每个I读取文件。 2)我试图根据行数而不是时间值进行采样。此外,每个样本的移位都是一个。
文件样本:
Time VA
0.00000 1.000
0.12026 2.000
0.13026 2.000
0.14026 2.000
0.14371 3.000
0.14538 4.000
..........
..........
15.51805 79.002
15.51971 79.015
15.52138 79.028
15.52304 79.040
15.52470 79.053
.............
为更专业的方式什么建议吗?
是的,这几乎是我在找的东西。但是,我不需要随机抽样,而是统一对所有时间内容进行抽样。换句话说,我希望有更多的样本,直到时间结束(没有更多样本)。样品2和3 .....将由sampleShift进行调节。我试图添加更多的答案,但是,我只能得到一个样本。“开始时间<-0 为(I在1:MAXTIME){ 开始时间< - minTime + STARTTIME 测试<-sampTime(值,sampTimeLen,开始时间) 猫( ”样品“,I, ”\ n“ 个) 打印(测试) 开始时间<-shiftSize }” – SimpleNEasy 2013-02-22 02:00:43
@ Eng.Mohd:我已经编辑我在希望满足您澄清的方式回答。 – Simon 2013-02-22 02:50:47
谢谢。完美。 – SimpleNEasy 2013-02-22 04:29:34