0

我有一个大数据集 - 23500 行。每行都有双重事件,我需要计算独特的事件。所以我需要为每行计算 30 列中的唯一事件 - 并为每行创建一个带有计数的新列。如何做到这一点最简单的方法?

4

2 回答 2

1

或者也许这个:

library(dplyr)
library(purrr)

df %>%
  mutate(new = pmap_dbl(select(cur_data(), everything()), ~ n_distinct(c(...), na.rm = TRUE)))
于 2021-06-27T23:54:35.037 回答
1

使用applywithMARGIN = 1循环遍历行,获取unique元素并找到lengthinbase R

df1$new <- apply(df1, 1, FUN = function(x) length(unique(x[complete.cases(x)])))

或者另一个选项rowwisedplyr

library(dplyr)
df1 %>%
   rowwise %>%
   mutate(new = n_distinct(c_across(everything()), na.rm = TRUE)) %>%
   ungroup
于 2021-06-27T23:47:34.817 回答