使用R

时间:2015-05-20 07:18:27

标签: r

我使用以下代码计算数据帧的模式:

library(modeest)
apply(df[ ,2:length(df)], 1, mfv)

我的数据如下:

Item    A   B   C
Book001 56  32  56
Book002 95  95  20
Book003 50  89  50
Book004 6   65  40

它给了我以下输出:

[[1]]
[1] 56

[[2]]
[1] 95

[[3]]
[1] 50

[[4]]
[1]  6 40 65

仅当数据包含重复的术语时,此代码才是完美的。 如果没有重复出现的期限,如何将模式显示为NA

1 个答案:

答案 0 :(得分:0)

让我们尝试使用自定义函数:

foo <- function(x){
  out <- mfv(x)
  if(length(out) > 1)  out <- NA
  return(out)
}
apply(df[ ,2:length(df)], 1, foo)
# [1] 56 95 50 NA