在多条件测试中过滤 R 中的行
Filtering Rows in R on Mutliple Conditional Test
所以我试图根据具有两个或多个 0 值的条件过滤 data.frame 的行。
mir Target_2 Score value_2 Blank
1 BERKSHIRE BERKS 77 0 0
2 FRANKLIN FRANK 81 5 0
3 HAMPDEN DEN 69 4 0
4 HAMPSHIRE HAMP 75 0 0
5 MIDDLESEX SEX 47 0 0
6 WORCHESTER SEX 0 2 0
7 WORCHESTER WOR 64 0 0
8 BERKSHIR BERKS 0 3 0
9 HAMPHIRE HAMP 0 4 0
上面是一个示例数据框,我需要帮助返回行中只有一个零值的值。出于本示例的目的,我包括了一个全为零的列,但我的数据不会那么干净。所以我想知道是否有如下条件:
If col[value] == 0:
if col+1[value] == 0:
filter
elif col+2[value] == 0:
filter
elif col+n[value] == 0:
filter
我想将函数的输出应用于测试table:
mir Target_2 Score value_2 Blank
2 FRANKLIN FRANK 81 5 0
3 HAMPDEN DEN 69 4 0
这是一种方式:
> df[apply(df[3:5], 1, function(x) table(x)['0']==1), ]
mir Target_2 Score value_2 Blank
2 FRANKLIN FRANK 81 5 0
3 HAMPDEN DEN 69 4 0
它使用函数table
来计算每个数字的频率。如果 0
的频率为 1,则该行的频率为 returns TRUE
。然后这用于相应地对 df
进行子集化。
所以我试图根据具有两个或多个 0 值的条件过滤 data.frame 的行。
mir Target_2 Score value_2 Blank
1 BERKSHIRE BERKS 77 0 0
2 FRANKLIN FRANK 81 5 0
3 HAMPDEN DEN 69 4 0
4 HAMPSHIRE HAMP 75 0 0
5 MIDDLESEX SEX 47 0 0
6 WORCHESTER SEX 0 2 0
7 WORCHESTER WOR 64 0 0
8 BERKSHIR BERKS 0 3 0
9 HAMPHIRE HAMP 0 4 0
上面是一个示例数据框,我需要帮助返回行中只有一个零值的值。出于本示例的目的,我包括了一个全为零的列,但我的数据不会那么干净。所以我想知道是否有如下条件:
If col[value] == 0:
if col+1[value] == 0:
filter
elif col+2[value] == 0:
filter
elif col+n[value] == 0:
filter
我想将函数的输出应用于测试table:
mir Target_2 Score value_2 Blank
2 FRANKLIN FRANK 81 5 0
3 HAMPDEN DEN 69 4 0
这是一种方式:
> df[apply(df[3:5], 1, function(x) table(x)['0']==1), ]
mir Target_2 Score value_2 Blank
2 FRANKLIN FRANK 81 5 0
3 HAMPDEN DEN 69 4 0
它使用函数table
来计算每个数字的频率。如果 0
的频率为 1,则该行的频率为 returns TRUE
。然后这用于相应地对 df
进行子集化。