GVKun编程网logo

Filter_all(any_vars()) 我哪里出错了?(filter values)

10

如果您想了解Filter_all(any_vars())我哪里出错了?的相关知识,那么本文是一篇不可错过的文章,我们将对filtervalues进行全面详尽的解释,并且为您提供关于18万亿投掷硬币,我

如果您想了解Filter_all(any_vars()) 我哪里出错了?的相关知识,那么本文是一篇不可错过的文章,我们将对filter values进行全面详尽的解释,并且为您提供关于18万亿投掷硬币,我哪里出错了?、filterconfig PHP filter_var 函数 Filter 函数、filter_var php、filter_var php问题的有价值的信息。

本文目录一览:

Filter_all(any_vars()) 我哪里出错了?(filter values)

Filter_all(any_vars()) 我哪里出错了?(filter values)

如何解决Filter_all(any_vars()) 我哪里出错了??

我有一个包含 51 个 obs 的数据框。 20 个变量,称为 test。如下图:

X1 P1 P2 P3
A  1  0  5
B  3  9  0
C  5  0  0
D  1  0  0

我想删除值小于或等于 1 的所有行。因此生成的数据帧将只有 A、B、C 行。 我以为我使用以下命令破解了它:

test2 <- test %>% filter_all(any_vars(. > 2))

我也试过

test2 <- test %>% select(X1,P1:P3) %>% filter_all(any_vars(. > 2). 

即使我可以看到行的值小于或等于 1,这也不会删除任何行。

任何帮助将不胜感激

解决方法

您可以使用以下解决方案:

library(dplyr)

df %>%
  filter(if_all(everything(),~ .x > 1))

使用修改后的数据集返回:

  X1 P1 P2 P3
1  B  3  9  2

数据

structure(list(X1 = c("A","B","C","D"),P1 = c(1L,3L,5L,1L),P2 = c(0L,9L,0L,0L),P3 = c(5L,2L,0L)),,row.names = c(NA,-4L))

这是使用 purrr::pmap 执行此操作的另一种方法:

  • pmap 用于逐行操作,这里我们使用 c(...) 捕获每次迭代中数据集的每一行,同时排除第一个变量 X1
  • 然后我检查它们是否都大于 1
df %>%
  filter(pmap_lgl(df[-1],~ all(c(...) > 1)))

  X1 P1 P2 P3
1  B  3  9  2
,

在基础 R 中,您可以借助 rowSums -

res <- test[rowSums(test[-1] > 2) > 0,]
res

#  X1 P1 P2 P3
#1  A  1  0  5
#2  B  3  9  2
#3  C  5  0  0

18万亿投掷硬币,我哪里出错了?

18万亿投掷硬币,我哪里出错了?

为什么以下C代码在我的桌面和服务器上给出了不同的结果,两者都运行类似的 Linux版本?

它在18万亿投币中找到了行序列中最长的同一侧. [见Iain M. Banks的科幻小说考虑Phlebas.]

在服务器上,经过15.7万亿投币(它仍然在运行)之后,到目前为止,行序列中最长的同一侧只有29个.由于2 ^ 44 = 17,592,186,044,416,我希望最长的相同边序列在某个地方. 40到40年代中期,在完成所有18万亿之后可能达到44.

在仅仅47亿次投掷硬币之后的桌面上,最长的序列已经是31,因为2 ^ 31 = 2,147,483,648,这听起来是正确的.

那么为什么我在15.7万亿投币后只在服务器上获得了29个序列,但在我的桌面上只有47亿的31个序列?

Modulo偏见是我的第一个想法.桌面和服务器上的RAND_MAX是相同的,2,647(32位长签名).所以rand()函数会给我一个数字0< = rand()< = 2,647. 0是偶数,647是奇数,所以除非我非常误以为我的int引入了模偏差rand_num =(rand()%2);代码行. 我知道C标准库的伪随机数生成器不适合加密.当然,这不可能是一个因素,当然产生非常长,零和一系列的序列.可以吗? 这是来源: 使用以下两种机器编译:gcc -O3 -o 18TCT 18TrillionCoinTosses.c

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc,char* argv[])
{
    srand(time(NULL));

    int current_seq = 0;
    int longest_seq = 0;
    int prev_rand_num = -1;

    long long i = 0;
    long long total = 18000000000000;

    // To serve as a rudimentary progress indicator.
    long billion_counter = 0;
    long billion = 1000000000;

    while (i < total)
    {
        int rand_num = (rand() % 2);

        if (rand_num == prev_rand_num)
        {
            current_seq++;

            if (current_seq >= longest_seq)
            {
                longest_seq = current_seq;
                printf("Longest sequence so far: %d (on iteration %lli)\n",longest_seq,i);
            }
        }
        else
            current_seq = 1;

        if (billion_counter == billion)
        {
            billion_counter = 0;
            printf("Progress report,current iteration: %lli\n",i);
        }

        prev_rand_num = rand_num;

        i++;
        billion_counter++;
    }

    printf("\nTotal coins tossed: %lli\n",i);
    printf("Longest sequence: %d\n",longest_seq);
}

解决方法

您的随机数生成器可能在2 ^ 32 = 4294967296次调用后重复,因此您并未真正模拟18万亿次试验.您需要一个更好的RNG,一个保持超过32位内部状态的RNG.在许多系统上,只需调用random()而不是rand()即可访问更好的RNG. (在我的系统上,man随机说“随机 – 更好的随机数发生器”和“这个随机数发生器的周期非常大,大约16 *((2 ** 31)-1)”.虽然那是“唯一的” 34,359,738,352,仍然不到18万亿.)

另外,作为一个侧面点,rand()%2是有风险的,虽然现在大多数RNG没有会把你烧到那里的问题(如果你确实有这个问题,你就会知道它,因为除其他外无论如何,你都会连续获得0分.

附录:您可以在C FAQ列表中找到问题13.15中其他一些更好的随机数生成器的引用:http://c-faq.com/lib/rand.html.

filterconfig PHP filter_var 函数 Filter 函数

filterconfig PHP filter_var 函数 Filter 函数

filter_var() 函数通过指定的过滤器过滤变量。
如果成功,则返回已过滤的数据,如果失败,则返回 false。
语法
filter_var(variable, filter, options)variable:必需。规定要过滤的变量。
filter:可选。规定要使用的过滤器的 ID。 (参见下面的FiltersID列表)
options:规定包含标志/选项的数组。检查每个过滤器可能的标志和选项。

复制代码 代码如下:



@header(''content-type:text/html;charset=utf-8;'');
$email_a=''jcifox@gmail.com'';
$email_b=''@jcifox@gmail.com'';
$email_c=''jcifoxgmail.com'';
$ip_a=''0.0.0.0'';
$ip_b=''255.255.255.255'';
$ip_c=''0.0.0.265'';
echo $email_a.'' : '';
echo (filter_var($email_a,FILTER_VALIDATE_EMAIL))?''is valid'':''is not valid'';
echo ''

'';
echo $email_b.'' : '';
echo (filter_var($email_b,FILTER_VALIDATE_EMAIL))?''is valid'':''is not valid'';
echo ''

'';
echo $email_c.'' : '';
echo (filter_var($email_c,FILTER_VALIDATE_EMAIL))?''is valid'':''is not valid'';
echo ''

'';
echo $ip_a.'' : '';
echo (filter_var($ip_a,FILTER_VALIDATE_IP))?''is valid'':''is not valid'';
echo ''

'';
echo $ip_b.'' : '';
echo (filter_var($ip_b,FILTER_VALIDATE_IP))?''is valid'':''is not valid'';
echo ''

'';
echo $ip_c.'' : '';
echo (filter_var($ip_c,FILTER_VALIDATE_IP))?''is valid'':''is not valid'';
?>


FiltersID名称:描述
FILTER_CALLBACK:调用用户自定义函数来过滤数据。
FILTER_SANITIZE_STRING:去除标签,去除或编码特殊字符。
FILTER_SANITIZE_STRIPPED:"string" 过滤器的别名。
FILTER_SANITIZE_ENCODED:URL-encode 字符串,去除或编码特殊字符。
FILTER_SANITIZE_SPECIAL_CHARS:HTML 转义字符 ''"& 以及 ASCII 值小于 32 的字符。
FILTER_SANITIZE_EMAIL:删除所有字符,除了字母、数字以及 !#$%&''*+-/=?^_`{|}~@.[]
FILTER_SANITIZE_URL:删除所有字符,除了字母、数字以及 $-_.+!*''(),{}|\\^~[]`#%";/?:@&=
FILTER_SANITIZE_NUMBER_INT:删除所有字符,除了数字和 +-
FILTER_SANITIZE_NUMBER_FLOAT:删除所有字符,除了数字、+- 以及 .,eE。
FILTER_SANITIZE_MAGIC_QUOTES:应用 addslashes()。
FILTER_UNSAFE_RAW:不进行任何过滤,去除或编码特殊字符。
FILTER_VALIDATE_INT:在指定的范围以整数验证值。
FILTER_VALIDATE_BOOLEAN:如果是 "1", "true", "on" 以及 "yes",则返回 true,如果是 "0", "false", "off", "no" 以及 "",则返回 false。否则返回 NULL。
FILTER_VALIDATE_FLOAT:以浮点数验证值。
FILTER_VALIDATE_REGEXP:根据 regexp,兼容 Perl 的正则表达式来验证值。
FILTER_VALIDATE_URL:把值作为 URL 来验证。
FILTER_VALIDATE_EMAIL:把值作为 e-mail 来验证。
FILTER_VALIDATE_IP:把值作为 IP 地址来验证。

以上就介绍了filterconfig PHP filter_var 函数 Filter 函数,包括了filterconfig方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

filter_var php

filter_var php

filter_callback

function myfilter($val)
{
    if(in_array($val, [''one'',''two'',''three''])){
        return false;
    }else
    return $val;
}
function test($str)
{
    $opti
    $rs=filter_var($str,filter_callback,$options);
    var_dump($rs);
    echo ''<br>'';
}
test(''one'');
test(''aaa'');
test([''bbb'',''two'',''123'']);
登录后复制

结果:

bool(false) 
string(3) "aaa" 
array(3) { [0]=&gt; string(3) "bbb" [1]=&gt; bool(false) [2]=&gt; string(3) "123" } 
登录后复制

FILTER_VALIDATE_INT

function test($num)
{
    $opti
    $rs=filter_var($num,FILTER_VALIDATE_INT,$options);
    var_dump($rs);
    echo ''<br>'';
}
test(99);
test(120);
test(250);
登录后复制

结果:
int(130) 
int(120) 
int(130) 
登录后复制

以上就介绍了filter_var php,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

filter_var php问题

filter_var php问题

我正在为联系表单制作一个快速的小电子邮件脚本,并且没有设置这些变量($firstName和$lastName).

$firstName = filter_var($_POST['firstName'], FILTER_SANITIZE_STRING);
$lastName = filter_var($_POST['lastName'], FILTER_SANITIZE_STRING);

注意我是PHP的初学者

解决方法:

你是初学者?好吧,从开始使用数据验证的帽子!

你能把它放在这两行以下并给我们输出吗?

var_dump($firstName, $lastName, $_POST);

今天关于Filter_all(any_vars()) 我哪里出错了?filter values的介绍到此结束,谢谢您的阅读,有关18万亿投掷硬币,我哪里出错了?、filterconfig PHP filter_var 函数 Filter 函数、filter_var php、filter_var php问题等更多相关知识的信息可以在本站进行查询。

本文标签: