这看起来很简单,经过几次搜索后我找不到答案,但我也不知道自己做错了什么。具体来说,我想知道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.
但显然我还没有理解。
请详细说明,谢谢。
答案 0 :(得分:2)
MARGIN
参数仅适用于duplicated()
的数组方法,而不适用于数据框方法。但你可以使用
b[!duplicated(c(b))]
删除数据框的重复列。 c()
用于删除“data.frame”类,将b
转换为列表。 duplicated()
的默认方法适用于列表。有关详情,请参阅help(duplicated)
。