在R中计算数据化行中的唯一值。

问题描述 投票:0回答:1

我想在我的datatable中添加一列。添加的列的值应该是这一行中几列的唯一值。类似这样。

avv <- avv %>% mutate (MMW_dist = n_distinct(MMW_01:MMW_12))

它会产生这样的错误

在MWM_01:MWM_12中的警告信息:"数值表达式有5484个元素:只使用第一个元素"

和列中的所有值 MMW_dist 是1。

编辑:表是这样的(当然还有很多列)。

ID  Year    MMW_01  MMW_12
1   2012    0.1     0.2
1   2013    1.3     3.4
2   2012    0       0
3   2014    1.4     NA

结果应该是这样的(MWM_01到MWM_12列中的不同值)。

ID  Year    MMW_01  MMW_12  MMW_dist
1   2012    0.1     0.2     2
1   2013    1.3     3.4     2
2   2012    0       0       1
3   2014    1.4     NA      1
r
1个回答
1
投票

你可以试试.MMW_dist=n_distinct(...)。

avv <- avv %>% 
  mutate(MMW_dist = apply(select(., c(MMW_01:MMW_12)), 
                          1, 
                          function(x) n_distinct(x, na.rm = T)))

0
投票

或者你可以试试这个。

avv <- avv %>%
  rowwise() %>%
  mutate(MMW_dist = n_distinct(MMW_01:MMW_12, na.rm = T))
© www.soinside.com 2019 - 2024. All rights reserved.