如果行中的任何值大于 n,如何从 R 数据框中删除一行?
如果行中的任何值大于 n,可以通过使用带有单方括号和否定运算符的子集来从 R 数据框中删除一行。我们将对大于 n 的值进行子集化,然后对子集取反,如下面给出的示例所示。
示例 1
以下代码段创建了一个示例数据框 -
x1<-rpois(20,5)输出结果x2<-rpois(20,2)
x3<-rpois(20,8)
df1<-data.frame(x1,x2,x3)
df1
创建以下数据框 -
x1 x2 x31 4 2 12
2 4 0 10
3 3 0 10
4 5 3 5
5 6 0 8
6 4 1 7
7 2 1 7
8 4 1 10
9 10 0 10
10 6 4 4
11 3 3 13
12 7 0 8
13 3 1 7
14 4 0 6
15 5 3 5
16 4 0 2
17 3 3 7
18 6 2 7
19 7 3 17
20 2 3 11
如果行中的任何值大于 10,要从 df1 中删除行,请将以下代码添加到上述代码段中 -
df1[!rowSums(df1>10),]输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
x1 x2 x32 4 0 10
3 3 0 10
4 5 3 5
5 6 0 8
6 4 1 7
7 2 1 7
8 4 1 10
9 10 0 10
10 6 4 4
12 7 0 8
13 3 1 7
14 4 0 6
15 5 3 5
16 4 0 2
17 3 3 7
18 6 2 7
示例 2
以下代码段创建了一个示例数据框 -
y1<-rnorm(20)输出结果y2<-rnorm(20)
y3<-rnorm(20)
df2<-data.frame(y1,y2,y3)
df2
创建以下数据框 -
y1 y2 y31 0.23815055 0.44797910 -0.009917453
2 -0.82579339 -0.67543673 -0.313231987
3 0.93456545 0.34720074 0.856496009
4 -0.14107504 -0.66473395 -0.102566172
5 -0.31613111 0.79806925 -0.464500620
6 0.13722725 0.42098274 0.800216082
7 -0.46063194 -1.19591354 -0.935939317
8 1.25424818 0.77225841 0.508798438
9 1.18270201 0.40060187 0.718047210
10 1.11736153 0.74206460 1.529896849
11 -0.96901766 1.72965814 -1.138898309
12 -0.01484298 0.62858032 1.805046282
13 -0.01423460 0.80616290 -0.290950215
14 -0.80448205 -0.78334124 -0.589883476
15 -0.04113097 -0.22948217 0.689388447
16 -0.66901901 0.85912428 1.078791419
17 -0.07033102 -0.05181978 0.707799373
18 0.21166522 0.73385673 1.254184717
19 0.03052462 0.49958642 0.066300327
20 0.60012460 0.91094585 0.881134455
如果行中的任何值大于 0.5,要从 df2 中删除行,请将以下代码添加到上述代码段中 -
df2[!rowSums(df2>0.5),]输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
y1 y2 y31 0.23815055 0.4479791 -0.009917453
2 -0.82579339 -0.6754367 -0.313231987
4 -0.14107504 -0.6647339 -0.102566172
7 -0.46063194 -1.1959135 -0.935939317
14 -0.80448205 -0.7833412 -0.589883476
19 0.03052462 0.4995864 0.066300327
以上是 如果行中的任何值大于 n,如何从 R 数据框中删除一行? 的全部内容, 来源链接: utcz.com/z/331637.html