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


为了找到变量在R数据框列中改变符号的次数,我们可以使用sign函数结合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

更新于:2021年11月23日

412 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告