我怎样才能用dplyr得到 Dataframe 中每一行的最小值(或平均值)呢?
apply(mydataframe, 1, mean)
apply(mydataframe, 1, min)
我试过了
mydataframe %>% rowwise() %>% mean
或
mydataframe %>% rowwise() %>% summarise(mean)
或者其他的组合,但是我总是出错,我不知道正确的方法。
我知道我也可以使用rowMeans,但没有简单的“rowMin”等价物。也有一个matrixStats包,但大多数函数不接受数据。帧,只接受矩阵。
如果我想按行计算最小值,我可以用
do.call(pmin,mydataframe)行平均值有没有像这样简单的东西?
do.call(mean, mydataframe)
不起作用,我想我需要一个pmean函数或更复杂的函数。
谢啦,谢啦
为了比较结果,我们可以都用同一个例子:
set.seed(124)
df <- data.frame(A=rnorm(10), B=rnorm(10), C=rnorm(10))
7条答案
按热度按时间ej83mcc01#
我想这就是你想达到的目的
z9gpfhce2#
似乎有传言说,一些
dplyr
函数(如rowwise
)可能会在长期内被弃用(如here显示器上的隆隆声),而map
系列函数中的某些函数--如pmap
函数--来自purrr
,可用于执行此类计算:Mean是一种特殊情况(因此使用了基函数
rowMeans
),因为data.frame对象上的mean
在R3.0中已被弃用。rseugnpd3#
这个怎么样?
为了更加清晰,您可以在末尾添加另一个
t()
:kiayqfof4#
在
dplyr
1.0.0中,您可以将rowwise
与c_across
一起使用:o3imoua45#
一个
dplyr
和purrr
选项,可在其中使用所选助手:或者自
dplyr 1.0.0
:r7xajy2e6#
认为找到了解决方案-只是转置您的数据。框架:
q1qsirdb7#
如何避免指定每个列名?如下所示:
或