假设我有以下数据框:
m <- data.frame(a = c(".","1",2:10),
b = c(".","2",4:12),
c = c(rep(".",11)))
我使用apply来获取每一行的最大值:
maxrowval <- apply(m,1,max)
fin <- cbind(m,maxrowval)
问题是fin
的第9行和第10行没有给出最大值。
我必须在这里遗漏一些东西但不能指出问题的根源。也许与因素和水平有关。任何帮助表示赞赏。
答案 0 :(得分:1)
将评论中提到的字符问题与max
功能相结合,并从结果中删除"-Inf"
。
foo <- function(x){
tmp <- max(as.numeric(as.character(x)), na.rm = T)
ifelse(tmp == "-Inf", NA, tmp)
}
apply(m, 1, foo)
[1] NA 2 4 5 6 7 8 9 10 11 12