Странное поведение при заказе в R - PullRequest
0 голосов
/ 28 мая 2018

Я немного растерялся со следующим кодом:

simula <- data.frame(
  a=sample(c("b", "a"), 10, replace=TRUE), 
  b=sample(c("bb", "aa"), 10, replace=TRUE), 
  c=rnorm(10), 
  d=rnorm(10))

order(simula$a, simula$d, decreasing=c(T,F))

Оператор order выдает ошибку, в которой говорится, что

длина аргумента отличается

.Что не имеет большого смысла для меня.

Может кто-нибудь объяснить мне, почему это дает ошибку?

1 Ответ

0 голосов
/ 28 мая 2018

stringsAsFactors = F должен решить проблему:

simula <- data.frame(
  a=sample(c("b", "a"), 10, replace=TRUE), 
  b=sample(c("bb", "aa"), 10, replace=TRUE), 
  c=rnorm(10), d=rnorm(10), stringsAsFactors = FALSE)
order(simula$a, simula$d, decreasing=c(TRUE, FALSE))

В противном случае переменные будут сохранены как фактор, и выборка a / b будет иметь только 2 уровня по сравнению со столбцом с / д с 10 элементами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...