r语言var.test函数源代码
时间: 2023-05-15 20:02:38 浏览: 183
var.test函数是R语言中用于方差检验的函数。以下是该函数的源代码解析:
var.test函数的常规使用方法为:`var.test(x, y, alternative = c("two.sided", "less", "greater"),...)`,其中,x和y是两个数值向量,alternative为关键字参数,表示备择假设的选择,缺省值为"two.sided",其他可选值为"less"和"greater"。在该函数中,可用子函数scan进行参数输入,也可以直接使用向量输入。
函数的主体部分首先对输入的向量进行基本的校验和数据清洗,包括去掉NA值和无效值,以及转换输入值类型。然后,函数计算x和y的方差,并根据备择假设进行相应的统计检验。同时,该函数支持不同样本量的方差检验。
在函数的最后,函数返回检验结果,包括卡方值(chi-squared statistic)、自由度(degrees of freedom)、p值和置信区间(confidence interval)等信息。此外,函数还可以使用属性p.value、conf.int、estimate、statistic、df、method、alternative等访问检验结果的具体数值。
总的来说,var.test函数源代码实现了R语言中的方差检验功能,支持参数校验、快速计算和结果输出等功能,是方差检验分析中常用的工具之一。
相关问题
function webAudio(options){ //public this.volume = parseInt(options.volume || 100) ; // 音量控制单元,值为Number类型,范围为0-100 this.url = options.url || '' ; // 音频资源url,值类型为String类型 this.autoPlay = !!options.autoPlay; // 是否加载完成自动播放,值类型为Boolean类型 this.loopPlay = !!options.loopPlay; // 是否循环播放,值类型为Boolean类型 //private this.buffer = null; this.context = null; this.sourceAudio = null; this.gainNode = null; this.loadReady = false; //初始化 this.init = function () { window.AudioContext = window.AudioContext || window.webkitAudioContext || window.mozAudioContext || window.msAudioContext; if(!AudioContext){ console.error("您的浏览器不支持HTML5 audio API"); return } this.context = new AudioContext(); this.loadResource(); } //下载音频资源 this.loadResource = function () { var _this = this; var xhr = new XMLHttpRequest(); xhr.open('GET',this.url,true); xhr.responseType = 'arraybuffer'; xhr.onload = function () { _this.context.decodeAudioData(xhr.response,function (buffer) { _this.buffer = buffer; _this.prepareAudio(); this.loadReady = true; }) } xhr.send(); } //是否自动播放 this.prepareAudio = function () { this.autoPlay ? this.startAudio() : ''; } //创建音频 this.createAudio = function () { this.sourceAudio = this.context.createBufferSource();//创建一个音频源 相当于是装音频的容器 this.sourceAudio.buffer = this.buffer;// 告诉音频源 播放哪一段音频 this.gainNode = this.context.createGain();//调节音量 this.sourceAudio.connect(this.gainNode); this.changeVolume();//声音 this.sourceAudio.loop = this.loopPlay;//循环 this.gainNode.connect(this.context.destination);// 连接到输出源 } //重新播放 this.startAudio = function () { this.createAudio(); this.sourceAudio.start(0);//开始播放 } //改变音量 this.changeVolume = function (num) { num = num || 0; this.gainNode.gain.value = (this.volume += num) / 100; } //播放转为暂停 this.pauseAudio = function () { this.gainNode.disconnect(this.context.destination) } //暂停转为播放 this.playAudio = function () { this.gainNode.connect(this.context.destination) } //停止播放 this.stopAudio = function () { this.sourceAudio.stop() } //减小声音 this.decVolume = function () { if(this.volume >= 10){ this.changeVolume(-10); } } //增大声音 this.ascVolume = function () { if(this.volume <= 90){ this.changeVolume(10); } } //静音 this.quietVolume = function () { this.gainNode.gain.value = 0; } //静音恢复 this.recoverVolume = function () { this.changeVolume() } //当前音量 this.getVolume = function () { return (this.gainNode.gain.value).toFixed(2) * 100; } this.init(); return this; } window.test = new webAudio({ volume:100, url:'1.mp3', autoPlay:true, loopPlay:true }); //控制台事件 var pauseEle = document.getElementById("pause"); pauseEle.onclick = function() { if (pauseEle.alt === 'Pause') { test.pauseAudio(); } else { test.playAudio(); } }增加播放暂停图片切换
可以将HTML代码中的播放暂停按钮的img标签的src属性设为一个变量,然后在JavaScript中根据当前状态切换该变量的值,从而实现图片切换。例如,可以在JavaScript中添加一个togglePlayPause函数:
```
function togglePlayPause() {
var playPauseButton = document.getElementById("play-pause-button");
if (playPauseButton.src === "play.png") {
playPauseButton.src = "pause.png";
} else {
playPauseButton.src = "play.png";
}
}
```
并在createAudio函数中调用该函数:
```
this.createAudio = function () {
this.sourceAudio = this.context.createBufferSource();
this.sourceAudio.buffer = this.buffer;
this.gainNode = this.context.createGain();
this.sourceAudio.connect(this.gainNode);
this.changeVolume();
this.sourceAudio.loop = this.loopPlay;
this.gainNode.connect(this.context.destination);
togglePlayPause();
}
```
这样,每次播放或暂停音频时,都会切换播放暂停按钮的图片。需要在HTML代码中给该按钮添加一个id属性为"play-pause-button",并将src属性设为默认的播放按钮图片路径。
用pl/0语言编写pl/0测试用例源程序,将其命名为test0.pl
在使用PL/0语言编写PL/0测试用例源程序时,我们可以创建一个名为test0.pl的文件来存储我们的代码。这个代码文件将包含一系列测试用例,用于验证PL/0编译器的正确性和功能。
以下是一个示例的test0.pl源程序,其中包含了几个基本的测试用例:
```
VAR x, y, z;
PROCEDURE add;
VAR a, b, sum;
BEGIN
a := 2;
b := 3;
sum := a + b;
END;
PROCEDURE multiply(a, b);
VAR product;
BEGIN
product := a * b;
END;
BEGIN
x := 10;
y := 5;
z := x - y;
CALL add;
CALL multiply(x, y);
END.
```
在这个例子中,我们定义了三个变量x、y和z,以及两个过程add和multiply。在主程序BEGIN和END之间,我们对变量进行了一些基本的操作,如赋值和函数调用,并将结果存储在不同的变量中。
通过运行这个测试用例,我们可以验证PL/0编译器是否正确地解析了不同的语法结构、是否正确地进行了符号表管理以及是否正确地生成了中间代码等功能。
当我们运行test0.pl测试用例时,我们期望输出没有任何错误或警告信息,并且程序按照预期的方式执行,输出正确结果。
请注意,这只是一个简单的示例,您可以根据具体需求编写更多的测试用例来验证PL/0编译器的功能。
阅读全文