df <- data.frame(Num1=c(1,0,1,0,1), Num2=c(0,1,1,0,1), Num3=c(1,1,1,1,1), Num4=c(1,1,0,0,1), Num5=c(1,1,1,0,0))
我需要計算 r 中每一行的值變化次數。謝謝!
uj5u.com熱心網友回復:
rowSums(df[-1] != df[-ncol(df)])
[1] 2 1 2 2 1
即第一行有一個從 1 到 0 的變化,然后又回到 1。所以總共有 2 個變化等等
uj5u.com熱心網友回復:
這是一個嘗試,
df <- data.frame(Num1=c(1,0,1,0,1),
Num2=c(0,1,1,0,1),
Num3=c(1,1,1,1,1),
Num4=c(1,1,0,0,1),
Num5=c(1,1,1,0,0))
df$n_changes <- apply(df , MARGIN = 1 , function(x) sum(abs(diff(x))))
df
#> Num1 Num2 Num3 Num4 Num5 n_changes
#> 1 1 0 1 1 1 2
#> 2 0 1 1 1 1 1
#> 3 1 1 1 0 1 2
#> 4 0 0 1 0 0 2
#> 5 1 1 1 1 0 1
由reprex 包創建于 2022-06-02 (v2.0.1)
uj5u.com熱心網友回復:
apply我們可以用( )遍歷行MARGIN=1,然后使用rle(run-length-encoding),檢查lengths
apply(df, 1, function(x) lengths(rle(x)))[1,]-1
[1] 2 1 2 2 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/484922.html
上一篇:使用tkinterasksaveasfilename,如何將資料框字典保存到新的excel檔案中的單獨作業表中?
