如何查找 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