我想在我的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
你可以试试.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)))
或者你可以试试这个。
avv <- avv %>%
rowwise() %>%
mutate(MMW_dist = n_distinct(MMW_01:MMW_12, na.rm = T))