如何使用r中特定行的相应值计算特定列

如何使用r中特定行的相应值计算特定列,r,R,我的数据如下所示: 我想分别计算每个位置的总通过次数,同样地,R中每个位置的总失败次数。我如何实现这一点 PS:fail==fail lens\u bubble当数据格式整齐时,执行此类分析要容易得多。你可以进一步了解这意味着什么 首先,让我们创建一个数据示例 library(tidyverse) set.seed(327) dta <- tibble( tool_number = 200:212, Err = sample(c("pass", "fail"), size =

我的数据如下所示:

我想分别计算每个位置的总通过次数,同样地,R中每个位置的总失败次数。我如何实现这一点


PS:fail==fail lens\u bubble

当数据格式整齐时,执行此类分析要容易得多。你可以进一步了解这意味着什么

首先,让我们创建一个数据示例

library(tidyverse)
set.seed(327)

dta <- tibble(
  tool_number = 200:212,
  Err = sample(c("pass", "fail"), size = 13, replace = TRUE),

  pos01 = sample(c(0, 1), size = 13, replace = TRUE),
  pos02 = sample(c(0, 1), size = 13, replace = TRUE),
  pos03 = sample(c(0, 1), size = 13, replace = TRUE),
  pos04 = sample(c(0, 1), size = 13, replace = TRUE),
  pos05 = sample(c(0, 1), size = 13, replace = TRUE),
  pos06 = sample(c(0, 1), size = 13, replace = TRUE),
  pos07 = sample(c(0, 1), size = 13, replace = TRUE),
  pos08 = sample(c(0, 1), size = 13, replace = TRUE),
  pos09 = sample(c(0, 1), size = 13, replace = TRUE),
  pos10 = sample(c(0, 1), size = 13, replace = TRUE),
  date = sample(seq(
    as.Date("2017-01-01"), as.Date("2017-12-31"), by = "day"
  ), 13)
)
现在,您可以使用
groupby()
summary()
函数查找每个位置的通过次数和失败次数

dta %>% 
  group_by(Err, position) %>% 
  summarise(count = sum(value))

# # A tibble: 20 x 3
# # Groups:   Err [?]
# Err position count
# <chr>    <chr> <dbl>
#   1  fail    pos01     2
# 2  fail    pos02     1
# 3  fail    pos03     3
# 4  fail    pos04     0

我同意Andrew关于整洁数据的观点,但基本的R解决方案是

sapply(data1[, 3:12], function(x) sum(x[data1$Err == "pass"]))

sapply(data1[, 3:12], function(x) sum(x[data1$Err == "fail"]))

请将
dput(head(df))
的输出粘贴到您的问题中,包括一个数据示例。@LAP。可以在上面找到。请勿发布照片。只需复制/粘贴你的问题,在剩下的数据中,除了1和0之外还有数字,比如30,20,这意味着30个产品通过了位置1,20个产品在第2位失败,依此类推。在这里,我想得到每个位置上通过和失败的产品的数量。@LAP非常感谢…这里x表示列名正确??我得到这种输出1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,请将第二张图片中的文字复制到问题中。我无法从图片中复制代码,如果没有示例数据,就很难想出一个可行的解决方案。
sapply(data1[, 3:12], function(x) sum(x[data1$Err == "pass"]))
sapply(data1[, 3:12], function(x) sum(x[data1$Err == "fail"]))