在R中找到一行值的最大值时遇到问题

np8igboo  于 2023-04-03  发布在  其他
关注(0)|答案(2)|浏览(123)

我编写了以下代码来读取Excel数据表(Data1)并查找所有行的最大值。

library(readxl)
df <- read_xlsx("Data 1.xlsx", col_types = "text", col_names = TRUE) 

df 

   Q1    Q2    Q3    Q4    Q5    Q6    Q7    Q8    Q9    Q10   Q11   Q12   Q13   Q14   Q15  
   <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
  3     6     5     5     9     7     3     11    4     2     5     6     6     15    3    
  0     1     1     0     0     1     0     0     1     0     1     0     0     2     2    
  3     4     2     1     5     4     5     3     3     3     4     7     3     11    4 

df$max<-apply(df, 1, max) 

df$max
[1] "9"   "2"   "7"

所以,这显然是不正确的,因为第一行的最大值是11,它显示9。有人知道这里出了什么问题吗?

6yjfywim

6yjfywim1#

您可以使用以下命令:

tapply(as.numeric(unlist(df)), row(df), max)

 1  2  3 
15  2 11 

matrixStats::rowMaxs(as.matrix(type.convert(df, as.is =TRUE)))
[1] 15  2 11
fdx2calv

fdx2calv2#

pmaxbase R中的do.call一起使用

do.call(pmax, type.convert(df, as.is = TRUE))
[1] 15  2 11

相关问题