bug with 'unique'? Don't get an error when 'nmax' is 1 less than the number of unique values












4















Have tested this on R 3.5.0.



set.seed(0)
x <- rexp(100)
length(unique(x)) ## 100

## this fails as I expect
unique(x, nmax = 98)
#Error in unique.default(x, nmax = 98) : hash table is full

## but how come does this succeed?
length(unique(x, nmax = 99)) ## 100









share|improve this question























  • Same behavior with function duplicated.

    – 李哲源
    Nov 21 '18 at 23:16











  • Why wrap only the second call in length? I think this would be more clear if you used length in both or neither case of calling unique with nmax of 98 & 99

    – arvi1000
    Nov 21 '18 at 23:22













  • This is the best I can offer. r.789695.n4.nabble.com/… nmax - 1 still returns the length of your vector, so I think it's correct about ignoring it.

    – Anonymous coward
    Nov 21 '18 at 23:27













  • @Anonymouscoward Thanks. Now factor has the same problem.

    – 李哲源
    Nov 21 '18 at 23:30











  • I guess anything that calls duplicated has the problem.

    – Anonymous coward
    Nov 21 '18 at 23:31
















4















Have tested this on R 3.5.0.



set.seed(0)
x <- rexp(100)
length(unique(x)) ## 100

## this fails as I expect
unique(x, nmax = 98)
#Error in unique.default(x, nmax = 98) : hash table is full

## but how come does this succeed?
length(unique(x, nmax = 99)) ## 100









share|improve this question























  • Same behavior with function duplicated.

    – 李哲源
    Nov 21 '18 at 23:16











  • Why wrap only the second call in length? I think this would be more clear if you used length in both or neither case of calling unique with nmax of 98 & 99

    – arvi1000
    Nov 21 '18 at 23:22













  • This is the best I can offer. r.789695.n4.nabble.com/… nmax - 1 still returns the length of your vector, so I think it's correct about ignoring it.

    – Anonymous coward
    Nov 21 '18 at 23:27













  • @Anonymouscoward Thanks. Now factor has the same problem.

    – 李哲源
    Nov 21 '18 at 23:30











  • I guess anything that calls duplicated has the problem.

    – Anonymous coward
    Nov 21 '18 at 23:31














4












4








4


1






Have tested this on R 3.5.0.



set.seed(0)
x <- rexp(100)
length(unique(x)) ## 100

## this fails as I expect
unique(x, nmax = 98)
#Error in unique.default(x, nmax = 98) : hash table is full

## but how come does this succeed?
length(unique(x, nmax = 99)) ## 100









share|improve this question














Have tested this on R 3.5.0.



set.seed(0)
x <- rexp(100)
length(unique(x)) ## 100

## this fails as I expect
unique(x, nmax = 98)
#Error in unique.default(x, nmax = 98) : hash table is full

## but how come does this succeed?
length(unique(x, nmax = 99)) ## 100






r vector unique






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 21 '18 at 23:10









李哲源李哲源

48.3k1496147




48.3k1496147













  • Same behavior with function duplicated.

    – 李哲源
    Nov 21 '18 at 23:16











  • Why wrap only the second call in length? I think this would be more clear if you used length in both or neither case of calling unique with nmax of 98 & 99

    – arvi1000
    Nov 21 '18 at 23:22













  • This is the best I can offer. r.789695.n4.nabble.com/… nmax - 1 still returns the length of your vector, so I think it's correct about ignoring it.

    – Anonymous coward
    Nov 21 '18 at 23:27













  • @Anonymouscoward Thanks. Now factor has the same problem.

    – 李哲源
    Nov 21 '18 at 23:30











  • I guess anything that calls duplicated has the problem.

    – Anonymous coward
    Nov 21 '18 at 23:31



















  • Same behavior with function duplicated.

    – 李哲源
    Nov 21 '18 at 23:16











  • Why wrap only the second call in length? I think this would be more clear if you used length in both or neither case of calling unique with nmax of 98 & 99

    – arvi1000
    Nov 21 '18 at 23:22













  • This is the best I can offer. r.789695.n4.nabble.com/… nmax - 1 still returns the length of your vector, so I think it's correct about ignoring it.

    – Anonymous coward
    Nov 21 '18 at 23:27













  • @Anonymouscoward Thanks. Now factor has the same problem.

    – 李哲源
    Nov 21 '18 at 23:30











  • I guess anything that calls duplicated has the problem.

    – Anonymous coward
    Nov 21 '18 at 23:31

















Same behavior with function duplicated.

– 李哲源
Nov 21 '18 at 23:16





Same behavior with function duplicated.

– 李哲源
Nov 21 '18 at 23:16













Why wrap only the second call in length? I think this would be more clear if you used length in both or neither case of calling unique with nmax of 98 & 99

– arvi1000
Nov 21 '18 at 23:22







Why wrap only the second call in length? I think this would be more clear if you used length in both or neither case of calling unique with nmax of 98 & 99

– arvi1000
Nov 21 '18 at 23:22















This is the best I can offer. r.789695.n4.nabble.com/… nmax - 1 still returns the length of your vector, so I think it's correct about ignoring it.

– Anonymous coward
Nov 21 '18 at 23:27







This is the best I can offer. r.789695.n4.nabble.com/… nmax - 1 still returns the length of your vector, so I think it's correct about ignoring it.

– Anonymous coward
Nov 21 '18 at 23:27















@Anonymouscoward Thanks. Now factor has the same problem.

– 李哲源
Nov 21 '18 at 23:30





@Anonymouscoward Thanks. Now factor has the same problem.

– 李哲源
Nov 21 '18 at 23:30













I guess anything that calls duplicated has the problem.

– Anonymous coward
Nov 21 '18 at 23:31





I guess anything that calls duplicated has the problem.

– Anonymous coward
Nov 21 '18 at 23:31












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53421729%2fbug-with-unique-dont-get-an-error-when-nmax-is-1-less-than-the-number-of-u%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53421729%2fbug-with-unique-dont-get-an-error-when-nmax-is-1-less-than-the-number-of-u%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

Does disintegrating a polymorphed enemy still kill it after the 2018 errata?

A Topological Invariant for $pi_3(U(n))$