r语言 - 在第一次出现后将 NA 分配给每行中的重复项



我有一个看起来像这样的数据帧:

    crop1   crop4       crop5       crop6   crop7   crop8         crop9  crop10      crop11
1   Onion    Rice  Soya Beans  Sugar Cane   Onion     Tea  Corn (Maize)    Rice  Soya Beans
2    None    None        None        None    None    None          None    None        None
3    None    None        None        None    None    None          None    None        None
4 Accacia  Rubber     Accacia      Rubber Accacia  Rubber       Accacia  Rubber     Accacia
5 Accacia  Rubber     Accacia      Rubber Accacia  Rubber       Accacia  Rubber     Accacia
6    Rice    Rice        Rice        Rice    Rice    Rice          Rice    Rice        Rice
现在,我想在NA

首次出现后将NA分配给每行中的所有重复条目。也就是说,我的数据帧在每一行中应该只有唯一的条目,否则为 NA。例如,在第一行中,我希望有:

1   Onion    Rice  Soya Beans  Sugar Cane   NA    Tea  Corn (Maize)    NA  NA

由于"洋葱","大米"和"大豆"已经出现在这一行中。因此,第 4 行应如下所示:

4 Accacia  Rubber NA NA NA NA NA NA NA

对此有什么想法吗?

谢谢!

数据帧:http://pastebin.com/yKqhWyvW

我们可以使用duplicated将重复元素设置为每行中的NA

,方法是循环使用apply
df1[] <- t(apply(df1, 1, FUN = function(x) replace(x, duplicated(x), NA)))

最新更新