如何将重复的函数应用于数据框的列

时间:2017-02-16 02:30:32

标签: r

这看起来很简单,经过几次搜索后我找不到答案,但我也不知道自己做错了什么。具体来说,我想知道MARGIN参数是否允许我检查duplicated的重复列。

这可能是代码:

dim(b)
    [1]  59 130
duplicated(b, MARGIN = 2)
     [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
    [14] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
    [27] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
    [40] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
    [53] FALSE FALSE FALSE FALSE FALSE FALSE FALSE
 duplicated(b, MARGIN = 1)
     [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
    [14] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
    [27] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
    [40] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
    [53] FALSE FALSE FALSE FALSE FALSE FALSE FALSE

MARGIN从1更改为2无效,每次获得59行的59个结果。我想找到删除重复列的最简单方法,并遇到duplicated。我认为重复应该有效,因为在文档中它提到了边缘参数MARGIN the array margin to be held fixed: a single integer.但显然我还没有理解。

请详细说明,谢谢。

1 个答案:

答案 0 :(得分:2)

MARGIN参数仅适用于duplicated()的数组方法,而不适用于数据框方法。但你可以使用

b[!duplicated(c(b))]

删除数据框的重复列。 c()用于删除“data.frame”类,将b转换为列表。 duplicated()的默认方法适用于列表。有关详情,请参阅help(duplicated)

相关问题