如何在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
广告