gpt4 book ai didi

r - 在数据帧上查找最大值和最小值,忽略 NA

转载 作者:行者123 更新时间:2023-12-03 20:00:21 24 4
gpt4 key购买 nike

我需要在数据帧“df”中找到最大值和最小值,如下所示:

col1  col2  col3 
7 4 5
2 NA 6
3 2 4
NA NA 1
结果应该是:min = 1 和 max = 7。
我用过这个功能:
min <- min(df, na.rm=TRUE)
max <- max(df, na.rm=TRUE)
但它给了我以下错误:
 Error in FUN(X[[i]], ...) : 
only defined on a data frame with all numeric variables
所以我以这种方式将所有值转换为.numeric:
df <- as.numeric(as.character(df))
但它通过强制引入了 NA,现在结果是:
min = -Inf 和 max=Inf
如何在忽略 NA 的 df 上操作?

最佳答案

如果列不是 numeric ,将其转换为 type.convert

df <- type.convert(df, as.is = TRUE)
或者使用 matrix 进行力转换路线
df[] <- as.numeric(as.matrix(df))
或与 lapply
df[] <- lapply(df, function(x) as.numeric(as.character(x)))
R 4.1.0我们也可以
sapply(df, \(x) as.numeric(as.character(x))) |> 
range(na.rm = TRUE)
#[1] 1 7

一旦列是 numeric ,功能按预期工作
min(df, na.rm = TRUE)
#[1] 1
max(df, na.rm = TRUE)
#[1] 7
请注意 as.character/as.numeric需要 vector输入而不是 data.frame

关于r - 在数据帧上查找最大值和最小值,忽略 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67663815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com