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

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

例如,如果我们有一个名为 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