我正在处理一个表,对于该表,我需要计算满足某个条件的行数,结果基本上是相同管道的多次重复,只是变量名不同.

比方说,我想知道在每个变量上,有多少辆车比Valiant的车好.下面是一个包含两个变量的代码示例:

library(tidyverse)

reference <- mtcars %>% 
     slice(6)

mpg <- mtcars  %>% 
  filter(mpg > reference$mpg) %>%
  count() %>% 
  pull()

cyl <- mtcars  %>% 
  filter(cyl > reference$cyl) %>%
  count() %>% 
  pull()

tibble(mpg, cyl)

除了,假设我需要对大约100个变量这样做,那么肯定有更优的方法来重复这个过程.

怎样才能以最优的方式重写上面的代码(也许,使用map()或其他可以很好地处理管道的东西,这样结果就会是一个Tibble,其中包含mtcars中所有变量的计数?

我觉得解决方案应该很简单,但我被困住了. 谢谢!

推荐答案

或者:

library(tidyverse)

map_dfc(mtcars, ~sum(.x[6] < .x))

map2_dfc(mtcars, reference, ~sum(.y < .x))

R相关问答推荐

单个轮廓重叠条的单独图例

将包含卷的底部25%的组拆分为2行

将饼图插入条形图

合并DFS列表并将索引提取为新列

在嵌套列表中查找元素路径的最佳方法

如何用书面利率绘制geom_bar图

仅在R中的数据集开始和结束时删除所有 Select 列的具有NA的行

手动指定从相同数据创建的叠加图的 colored颜色

R代码,用于在线条图下显示观测表

使用来自嵌套列和非嵌套列的输入的PURRR:MAP和dplyr::Mariate

如何构建一个for循环来循环处理动物ID?

基于R中的辅助向量中的值有条件地连接向量中的字符串

随机将数据帧中特定列上的某些行设置为NA

如何在AER::ivreg中指定仪器?

使用dqur在不同变量上创建具有多个条件的变量

如何编辑被动式数据表?

向内存不足的数据帧添加唯一行

R中刻面网格中的排序条形图

看似重叠的剧情

使用可变样本大小从数据帧中随机采样