如何使用 dplyr 获得 data.frame 上每行的最小值(或平均值)?
我的意思是相同的结果
apply(mydataframe, 1, mean)
apply(mydataframe, 1, min)
我试过了
mydataframe %>% rowwise() %>% mean
或者
mydataframe %>% rowwise() %>% summarise(mean)
或其他组合,但我总是出错,我不知道正确的方法。
我知道我也可以使用 rowMeans,但没有简单的“rowMin”等价物。
还有一个 matrixStats 包,但大多数函数不接受 data.frames,只接受矩阵。
如果我想计算 min rowwise 我可以使用
do.call(pmin, mydataframe)
有没有像这样简单的 rowwise mean ?
do.call(mean, mydataframe)
不起作用,我想我需要一个 pmean 函数或更复杂的东西。
谢谢
为了比较结果,我们都可以在同一个例子上工作:
set.seed(124)
df <- data.frame(A=rnorm(10), B=rnorm(10), C=rnorm(10))
最佳答案
我想这就是你想要完成的:
df <- data.frame(A=rnorm(10), B=rnorm(10), C=rnorm(10))
library(dplyr)
df %>% rowwise() %>% mutate(Min = min(A, B, C), Mean = mean(c(A, B, C)))
# A B C Min Mean
# 1 1.3720142 0.2156418 0.61260582 0.2156418 0.73342060
# 2 -1.4265665 -0.2090585 -0.05978302 -1.4265665 -0.56513600
# 3 0.6801410 1.5695065 -2.70446924 -2.7044692 -0.15160724
# 4 0.0335067 0.8367425 -0.83621791 -0.8362179 0.01134377
# 5 -0.2068252 -0.2305140 0.23764322 -0.2305140 -0.06656532
# 6 -0.3571095 -0.8776854 -0.80199141 -0.8776854 -0.67892877
# 7 1.0667424 -0.6376245 -0.41189564 -0.6376245 0.00574078
# 8 -1.0003376 -1.5985281 0.90406055 -1.5985281 -0.56493504
# 9 -0.8218494 1.1100531 -1.12477401 -1.1247740 -0.27885677
# 10 0.7868666 0.6099156 -0.58994138 -0.5899414 0.26894694
关于R dplyr rowwise mean 或 min 等方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31598935/