如何在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 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.