我在下面有一个数据框。我需要找到行的最小值和最大值,但少数列是字符。
df
x y z
1 1 1 a
2 2 5 b
3 7 4 c
我需要
df
x y z Min Max
1 1 1 a 1 1
2 2 5 b 2 5
3 7 4 c 4 7
最佳答案
另一种 dplyr
可能是:
df %>%
mutate(Max = do.call(pmax, select_if(., is.numeric)),
Min = do.call(pmin, select_if(., is.numeric)))
x y z Max Min
1 1 1 a 1 1
2 2 5 b 5 2
3 7 4 c 7 4
或者提议的变体是@G。格洛腾迪克:
df %>%
mutate(Min = pmin(!!!select_if(., is.numeric)),
Max = pmax(!!!select_if(., is.numeric)))
关于除某些列外的行最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57844278/