如何查找 R 数据框列中变量改变其符号的次数?

r programmingserver side programmingprogramming

要查找 R 数据框列中变量改变其符号的次数,我们可以使用带有 diff 和 sum 函数的 sign 函数。

例如,如果我们有一个名为 df 的数据框,其中包含一个列,例如 C,那么我们可以使用以下命令查找 C 改变其符号的次数 −

sum(diff(sign(df$C))!=0)

示例 1

以下代码片段创建了一个示例数据框 −

x<-rnorm(20)
df1<-data.frame(x)
df1

创建以下数据框 −

     x
1   0.37963948
2  -0.50232345
3  -0.33320738
4  -1.01857538
5  -1.07179123
6   0.30352864
7   0.44820978
8   0.05300423
9   0.92226747
10  2.05008469
11 -0.49103117
12 -2.30916888
13  1.00573852
14 -0.70920076
15 -0.68800862
16  1.02557137
17 -0.28477301
18 -1.22071771
19  0.18130348
20 -0.13889136

要查找 x 改变其符号的次数,请将以下代码添加到上面的代码片段中 −

x<-rnorm(20)
df1<-data.frame(x)
sum(diff(sign(df1$x))!=0)

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

[1] 9

示例 2

以下代码片段创建了一个示例数据框 −

y<-sample(-2:2,20,replace=TRUE)
df2<-data.frame(y)
df2

创建以下数据框 −

    y
1  -1
2   0
3  -1
4   2
5   2
6   0
7   1
8   1
9   1
10  2
11  0
12 -2
13 -1
14 -2
15 -1
16  2
17  0
18  1
19  1
20 -2

要查找 y 改变其符号的次数,请将以下代码添加到上面的代码片段中 −

y<-sample(-2:2,20,replace=TRUE)
df2<-data.frame(y)
sum(diff(sign(df2$y))!=0)

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

[1] 11

示例 3

以下代码片段创建了一个示例数据框 −

z<-sample(-5:5,20,replace=TRUE)
df3<-data.frame(z)
df3

创建以下数据框 −

    z
1   5
2   0
3   3
4   2
5   4
6  -2
7  -1
8   1
9  -5
10  2
11  2
12  4
13  3
14  2
15 -4
16 -1
17  3
18  1
19  1
20  4

要查找 z 改变其符号的次数,请将以下代码添加到上面的代码片段中 −

z<-sample(-5:5,20,replace=TRUE)
df3<-data.frame(z)
sum(diff(sign(df3$z))!=0)

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

[1] 8

相关文章