[英]R - choose the number which appears most in a row
我有一個df test
:
A B C
1 1 NA
2 NA NA
1 2 2
我想創建另一個列,比如test$D
,這是該行中出現最多的數字,不包括NA。 我想要的df是:
A B C D
1 1 NA 1
2 NA NA 2
1 2 2 2
我一直在尋找像rowMeans
這樣的類似函數,na.rm = T但是找不到適合這種情況的函數。 真的很感激任何幫助
使用table
另一種選擇,
apply(test, 1, function(i) as.numeric(names(sort(-table(i)))[1]))
#[1] 1 2 2
我們可以使用apply
與MARGIN = 1
找到每一行的數字的頻率,並使用獲得的最大頻率數which.max
test$D <- apply(test, 1, FUN = function(x) {
x1 <- table(factor(x, levels = unique(x)))
as.numeric(names(x1)[which.max(x1)])})
test$D
#[1] 1 2 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.