diff()函数---useR!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了diff()函数---useR!相关的知识,希望对你有一定的参考价值。
参考技术A 这个函数有两个重要的参数lag和differences,需要特别注意一下。
看一下列子体会一下:
参数lag=1的diff()函数是这样计算的:因为lag值为1,所以滞后一项,也就是说,相减的两项,位置相距1项,即后一项减前一项的值。
1- 第二项减去第一项的值,3-2=1
2-第三项减去第二项的值,5-3=2
3-第四项减去第三项的值,18-5
13
4-第五项减去第四项的值,4-18=-14
5-第六项减去第五项的值,6-4=2
6-第七项减去第六项的值,4-6=-2
参数lag=1的diff()函数是这样计算的:因为lag值为2,所以滞后两项,也就是说,相减的两项位置相隔2。具体计算如下:
1- 第三项减去第一项的值,5-2=3
2-第四项减去第二项的值,18-3=15
3-第五项减去第三项的值,4-5
-1
4-第六项减去第四项的值,6-18=-12
5-第七项减去第五项的值,4-4=0
本例参数lag=1,differences=2,也就是说执行两次diff(x,lag=1),具体来说,首先计算diff(x,lag=1),以这个函数的结果作为下一次diff()函数中的x,再执行一遍diff(x,lag=1)
从图3-1可以看到,首先计算一遍diff(x,lag=1),得到的值在表格第一行中;然后,再以这些值作为input=x,计算diff(x,lag=1),得到的结果在表格的第二行。
下面这个网站上有一个小练习: Calculate a difference of a series using diff()
diff()函数还可以用来计算导数
PHP如何使用array_diff_ukey()函数?代码示例
array_diff_ukey()函数是PHP中的内置函数。它用于使用用户定义的函数比较键的两个或多个数组, 并返回一个数组, 该数组为array1, 并且不存在其他任何array2, array3或更多…
语法如下:
array_diff_ukey($array1, $array2, $array3..., arr_diffukeyFunction)
使用参数:此函数接受最少三个参数, 而所有三个参数都是必需的, 另一个是可选的。参数说明如下:
- $ array1(强制性):
该数组将与其他数组进行比较(例如, 从array1比较该数组)。 - $ array2(强制性): 数组与第一个数组相比。
- $ array3(可选): 数组与第一个数组相比。
- arr_diffukeyFunction(强制性): 这是必需的用户定义功能。定义可调用比较功能的字符串。如果第一个参数大于第二个参数, 则比较函数返回一个大于0的整数。
返回值:返回一个数组, 其中包含array1中其他数组中不存在的条目, 例如:-( arra2, arra3, arar4….more)。如果所有值都存在于其他数组中, 则该函数返回NULL。返回值类型是一个数组。
范例1:
Input:
$arr1 = array("one"=>"C Program", "two"=>"PHP Program", "three"=>"Java Program ");
$arr2 = array("one"=>"Java Program", "two"=>"C++ Program", "six"=>"Java Program");
Output:
Array
(
[three] => Java Program
)
Explanation: First two values of arr1 are matched with arr2 and last value
not matched so the function returns last value.
范例2:
Input:
$arr1=array("one"=>"C Program", "two"=>"PHP Program", "three"=>"Java Program ");
$arr2=array("one"=>"Java Program", "two"=>"C++ Program", "three"=>"Java Program");
Output:
Array
(
)
Explanation: All values are matched with arr2 so function return null values.
让我们以一个例子来了解array_diff_ukey()函数。
程序1:获取两个数组(array1和array2)并使用用户定义的键比较函数(diffukeyFunction)。
PHP语言的简单解决方案:
<?php
// Program of array_diff_ukey function in PHP
function arr_diffukeyFunction( $one , $two )
{
if ( $one === $two ) {
return 0;
}
return ( $one > $two ) ? 1 : -1;
}
// Driver Code
$arr1 = array (
"one" => "C Program" , "two" => "PHP Program" , "three" => "Java Program "
);
$arr2 = array (
"one" => "Java Program" , "two" => "C++ Program" , "six" => "Java Program"
);
$result = array_diff_ukey ( $arr1 , $arr2 , "arr_diffukeyFunction" );
print_r( $result );
?>
输出如下:
Array
(
[three] => Java Program
)
程序2:获取三个数组(array1, array2和arra3), 并使用用户定义的键比较函数(diffukeyFunction)。
<?php
// Program of array_diff_ukey function in PHP
function arr_diffukeyFunction( $one , $two )
{
if ( $one === $two ) {
return 0;
}
return ( $one > $two ) ? 1 : -1;
}
// Driver Code
$arr1 = array (
"one" => "C Program" , "two" => "PHP Program" , "three" => "Java Program "
);
$arr2 = array (
"one" => "XML Program" , "two" => "C++ Program" , "four" => "CSS Program"
);
$arr3 = array (
"five" => "MVC Program" , "six" => "C# Program" , "one" => "ASP .NET Program"
);
$result = array_diff_ukey ( $arr1 , $arr2 , $arr3 , "arr_diffukeyFunction" );
print_r( $result );
?>
输出如下:
Array
(
[three] => Java Program
)
程序3:
如果所有值在其他数组中都匹配, 则返回Null
<?php
// Program of array_diff_ukey function in PHP
function arr_diffukeyFunction( $one , $two )
{
if ( $one === $two ) {
return 0;
}
return ( $one > $two ) ? 1 : -1;
}
// Driver Code
$arr1 = array (
"one" => "C Program" , "two" => "PHP Program"
);
$arr2 = array (
"one" => "Java Program" , "two" => "C++ Program"
);
$result = array_diff_ukey ( $arr1 , $arr2 , "arr_diffukeyFunction" );
print_r( $result );
?>
输出如下:
Array
(
)
示例4:
如果仅使用一个数组(array1), 并且使用用户定义的键比较函数(diffukeyFunction), 则没有输出, 并且给出" RUNTIME ERROR"警告消息。
<?php
//Program of array_diff_ukey function in PHP
function arr_diffukeyFunction( $one , $two )
{
if ( $one === $two ) {
return 0;
}
return ( $one > $two ) ? 1 : -1;
}
// Driver Code
$arr1 = array (
"one" => "C Program" , "two" => "PHP Program" , "three" => "Java Program "
);
//take only one array
$result = array_diff_ukey ( $arr1 , "arr_diffukeyFunction" );
print_r( $result );
?>
输出如下:
No Output
警告:
PHP Warning: array_diff_ukey(): at least 3 parameters are required, 2 given in /home/c0177af9f69e897ad93cc9855a9ae415.php on line 23
更多后端开发相关内容请参考:lsbin - IT开发技术:https://www.lsbin.com/
查看以下更多PHP相关的内容:
- PHP DsDeque Capacity()函数用法:https://www.lsbin.com/3677.html
- PHP错误处理方法:https://www.lsbin.com/3671.html
- PHP DsSequence apply()函数用法:https://www.lsbin.com/3539.html
以上是关于diff()函数---useR!的主要内容,如果未能解决你的问题,请参考以下文章
函数 TIMESTAMP_DIFF 没有匹配的签名...... BigQuery 上的错误