在特定时间步处理独特的测量

Dealing with unique measurement at specific time-steps

我想确定唯一测量次数。基于 t1 处的以下示例,有一个唯一的测量值(例如 1)。 Two 不是唯一的测量值,因为它在不同的位置出现两次。在 t2 处有 0 个独特的测量值,在 t3 处再次有三个独特的测量值,在 t4、t5、t6 和 t7 处,有零。因此,唯一测量值的总和为 4。

数据格式:

期望的输出

示例数据

df<-structure(list(t1 = c(1, 2, 2), t2 = c(1, 1, 1), t3 = c(1, 3, 
4), t4 = c(2, 2, 2), t5 = c(3, 3, 3), t6 = c(3, 3, 3), t7 = c(1, 
1, 1)), row.names = c(NA, -3L), spec = structure(list(cols = list(
    t1 = structure(list(), class = c("collector_double", "collector"
    )), t2 = structure(list(), class = c("collector_double", 
    "collector")), t3 = structure(list(), class = c("collector_double", 
    "collector")), t4 = structure(list(), class = c("collector_double", 
    "collector")), t5 = structure(list(), class = c("collector_double", 
    "collector")), t6 = structure(list(), class = c("collector_double", 
    "collector")), t7 = structure(list(), class = c("collector_double", 
    "collector"))), default = structure(list(), class = c("collector_guess", 
"collector")), delim = ","), class = "col_spec"),  class = c("spec_tbl_df", 
"tbl_df", "tbl", "data.frame"))

试试这个...

library(tidyverse)

df <- structure(
  list(
    t1 = c(1, 2, 2),
    t2 = c(1, 1, 1),
    t3 = c(1, 3, 4),
    t4 = c(2, 2, 2),
    t5 = c(3, 3, 3),
    t6 = c(3, 3, 3),
    t7 = c(1, 1, 1)
  ),
  row.names = c(NA,-3L),
  spec = structure(
    list(
      cols = list(
        t1 = structure(list(), class = c("collector_double", "collector")),
        t2 = structure(list(), class = c("collector_double", "collector")),
        t3 = structure(list(), class = c("collector_double", "collector")),
        t4 = structure(list(), class = c("collector_double", "collector")),
        t5 = structure(list(), class = c("collector_double", "collector")),
        t6 = structure(list(), class = c("collector_double", "collector")),
        t7 = structure(list(), class = c("collector_double", "collector"))
      ),
    default = structure(list(), class = c("collector_guess", "collector")),
    delim = ","), class = "col_spec"),
  class = c("spec_tbl_df",
            "tbl_df", "tbl", "data.frame")
)

df |> 
  pivot_longer(everything()) |> 
  arrange(name, value) |> 
  count(name, value) |> 
  filter(n == 1) |> 
  group_by(name) |> 
  summarise(meas_num = str_c(value, collapse = ", "), count = sum(n))
#> # A tibble: 2 × 3
#>   name  meas_num count
#>   <chr> <chr>    <int>
#> 1 t1    1            1
#> 2 t3    1, 3, 4      3

reprex package (v2.0.1)

于 2022-04-26 创建