{"action":"created","issue":{"url":"https://api.github.com/repos/aiorazabala/qmethod/issues/238","labels_url":"https://api.github.com/repos/aiorazabala/qmethod/issues/238/labels{/name}","comments_url":"https://api.github.com/repos/aiorazabala/qmethod/issues/238/comments","events_url":"https://api.github.com/repos/aiorazabala/qmethod/issues/238/events","html_url":"https://github.com/aiorazabala/qmethod/issues/238","id":102427413,"number":238,"title":"infer range of ranks from dataset, do not require `distribution =` in qmethod","user":{"login":"maxheld83","id":5372770,"avatar_url":"https://avatars.githubusercontent.com/u/5372770?v=3","gravatar_id":"","url":"https://api.github.com/users/maxheld83","html_url":"https://github.com/maxheld83","followers_url":"https://api.github.com/users/maxheld83/followers","following_url":"https://api.github.com/users/maxheld83/following{/other_user}","gists_url":"https://api.github.com/users/maxheld83/gists{/gist_id}","starred_url":"https://api.github.com/users/maxheld83/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maxheld83/subscriptions","organizations_url":"https://api.github.com/users/maxheld83/orgs","repos_url":"https://api.github.com/users/maxheld83/repos","events_url":"https://api.github.com/users/maxheld83/events{/privacy}","received_events_url":"https://api.github.com/users/maxheld83/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/aiorazabala/qmethod/labels/extraction","name":"extraction","color":"d4c5f9"},{"url":"https://api.github.com/repos/aiorazabala/qmethod/labels/wontfix","name":"wontfix","color":"ffffff"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/aiorazabala/qmethod/milestones/9","html_url":"https://github.com/aiorazabala/qmethod/milestones/1.6.0","labels_url":"https://api.github.com/repos/aiorazabala/qmethod/milestones/9/labels","id":1267661,"number":9,"title":"1.6.0","description":"","creator":{"login":"maxheld83","id":5372770,"avatar_url":"https://avatars.githubusercontent.com/u/5372770?v=3","gravatar_id":"","url":"https://api.github.com/users/maxheld83","html_url":"https://github.com/maxheld83","followers_url":"https://api.github.com/users/maxheld83/followers","following_url":"https://api.github.com/users/maxheld83/following{/other_user}","gists_url":"https://api.github.com/users/maxheld83/gists{/gist_id}","starred_url":"https://api.github.com/users/maxheld83/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maxheld83/subscriptions","organizations_url":"https://api.github.com/users/maxheld83/orgs","repos_url":"https://api.github.com/users/maxheld83/repos","events_url":"https://api.github.com/users/maxheld83/events{/privacy}","received_events_url":"https://api.github.com/users/maxheld83/received_events","type":"User","site_admin":false},"open_issues":16,"closed_issues":0,"state":"open","created_at":"2015-08-22T21:22:49Z","updated_at":"2015-10-22T14:03:03Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2015-08-21T17:29:16Z","updated_at":"2015-10-22T14:03:03Z","closed_at":null,"body":"currently, when `forced = FALSE` in calling `qmethod()`, users have to specify the distribution, as per the manual:\r\n\r\n> `\\item{distribution}{logical; when forced = \\code{FALSE}, the distribution has to be provided as a vector of numbers, such as \\code{c(-2, -1, -1, 0, 1, 1, 2, 2)}.}`\r\n\r\nCan't we infer that from the dataset quite easily?\r\n\r\nCould this argument be deprecated in that case?\r\n\r\nOr am I missing something, @aiorazabala ?"},"comment":{"url":"https://api.github.com/repos/aiorazabala/qmethod/issues/comments/150234013","html_url":"https://github.com/aiorazabala/qmethod/issues/238#issuecomment-150234013","issue_url":"https://api.github.com/repos/aiorazabala/qmethod/issues/238","id":150234013,"user":{"login":"maxheld83","id":5372770,"avatar_url":"https://avatars.githubusercontent.com/u/5372770?v=3","gravatar_id":"","url":"https://api.github.com/users/maxheld83","html_url":"https://github.com/maxheld83","followers_url":"https://api.github.com/users/maxheld83/followers","following_url":"https://api.github.com/users/maxheld83/following{/other_user}","gists_url":"https://api.github.com/users/maxheld83/gists{/gist_id}","starred_url":"https://api.github.com/users/maxheld83/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maxheld83/subscriptions","organizations_url":"https://api.github.com/users/maxheld83/orgs","repos_url":"https://api.github.com/users/maxheld83/repos","events_url":"https://api.github.com/users/maxheld83/events{/privacy}","received_events_url":"https://api.github.com/users/maxheld83/received_events","type":"User","site_admin":false},"created_at":"2015-10-22T14:03:03Z","updated_at":"2015-10-22T14:03:03Z","body":"@aiorazabala I just got an email from a user who seemed a little confused about the `distribution = ` argument, much like I was (see above):\r\n\r\n> Dear Maximilian,\r\n>\r\n> I am writing regarding the qmethod package available for R on GitHub, with a question about the 'distribution' parameter that I am hoping you can answer.\r\n>\r\n>I have a set of Q sorts produced from a web-based card sorting activity where participants were free to place cards as near or as far away from each other as they thought relevant. The raw scores generated in the activity are continuous positive numbers typically varying from 0 to 100 (e.g. 22.567, 95.673). Thus, to the best of my understanding, the q sorts are not a 'forced distribution', as described in the qmethod R guide. It seems that it may be possible to also use qmethod with an unforced distribution, however, a couple things are unclear to me:\r\n>\r\n>1) whether it is possible to use qmethod with q sorts consisting of such data, and\r\n>\r\n>2) what value the distribution parameter should take on, if it is possible.\r\n>\r\n>So far I have experimented with the source code and found that if I comment out the section of the code in qzscores\r\n>\r\n>#if (forced) {\r\n>#    qscores <- sort(dataset[,1], decreasing=FALSE)\r\n>#    if (sum(apply(dataset, 2, function(x) sort(x) != qscores)) > 0) stop(\"Q method input: The argument >'forced' is set as 'TRUE', but your data contains one or more Q-sorts that do not to follow the same distribution.\")\r\n>#}\r\n>\r\n>#if (!forced) {\r\n>#    if (is.null(distribution)) stop(\"Q method input: The argument 'forced' is set as 'FALSE', but no >distribution has been provided in the argument 'distribution'.\")\r\n>#    if (length(distribution) != nrow(dataset)) stop(\"Q method input: The length of the distribution provided does not match the number of statements.\")\r\n>#    if (!is.numeric(distribution) & !is.integer(distribution)) stop(\"Q method input: The distribution provided contains non-numerical values.\")\r\n>#    qscores <- sort(distribution, decreasing=FALSE)\r\n>#}\r\n>\r\n>the analysis proceeds and seems to generate meaningful results. However, it's not exactly clear to me >what this bit of code is doing.\r\n>\r\n>Finally, I also noticed a related commit on GitHub that may fix the issue:\r\n>\r\n>https://github.com/maxheld83/qmethod/commit/4c76a5e3ec93927b3fb91226aff21a5a7d6fc0ec\r\n>\r\n>I would be really grateful for any help you could provide!\r\n>\r\n>Best,\r\n>\r\n>Stephen Bodnar\r\n>PhD candidate, Centre for Language and Speech Technology\r\n>Department of Linguistics, Radboud University Nijmegen\r\n\r\nHere's a suggestion: how about if people have a *free* distribution, but *don't* specify a `distribution = `, we just take the `range()` of their *raw* data as distribution?\r\n\r\nThis might make things a little easier for users."}}