我有一个df,有很多站点和变量.我需要计算每个站点的非零值的数量.我觉得我应该可以用summarize()count()tally()来做这件事,但我不太清楚.

雷普雷克斯:


df <- 
  tribble(
    ~variable,   ~site1,   ~site2,  ~site3,
    "var1",        0 ,       1,        0,
    "var2",        .5,       0,        0,
    "var3",        .1,       2,        0,
    "var4",        0,        .8,       1
  )


# does not work:
df %>%
  summarise(across(where(is.numeric), ~ count(.x>0)))

期望输出:

# A tibble: 1 × 3
  site1 site2 site3
  <dbl> <dbl> <dbl>
1   2     3     1

推荐答案

一个可能的解决方案:

library(dplyr)

df %>% 
  summarise(across(starts_with("site"), ~ sum(.x != 0)))

#> # A tibble: 1 × 3
#>   site1 site2 site3
#>   <int> <int> <int>
#> 1     2     3     1

另一种可能的解决方案,在base R中:

apply(df[-1], 2, \(x) sum(x != 0))

#> site1 site2 site3 
#>     2     3     1

R相关问答推荐

如何创建对角线上的载体为1的矩阵?

想要创建一个可以存储四个多元正态总体的多元偏度的载体

使用map()内的公式()创建多个公式

即使声明引发错误,R函数也会在第二次try 时返回结果

为什么以及如何修复Mapview不显示所有点并且st_buffer合并一些区域R?

带有gplot 2的十字舱口

如何删除R中除某些特定名称外的所有字符串?

如何使用R中的dhrr函数将李克特量表的因子列从长转换为宽?

在不安装软件包的情况下测试更新

如何编辑ggplot的图例字使用自定义对象(gtable)?'

在连续尺度上转置标签[瀑布图,R]

在R中按行按列范围查找最大值的名称

`lazy_dt`不支持`dplyr/across`?

方法::slotName如何处理非类、非字符的参数?

如何将SAS数据集的列名和列标签同时包含在r中GT表的表首?

查找所有站点的最小值

来自程序包AFEX和amp;的类/函数和NICE_TABLE&冲突

如何在R中改变fviz_pca_biplot中圆的边界线的 colored颜色 ?

如何计算每12行的平均数?

构建一个6/49彩票模拟系统