У меня возникла следующая проблема при проведении анализа с R.
У меня есть такой кадр данных:
Name | Group | Count
Person 1 | A | 3
Person 2 | A | 1
Person 3 | A | 0
Person 1 | B | 5
Person 2 | B | 0
Person 3 | B | 1
Person 1 | C | 1
и мне нужно «расширить» его (не уверен, что правильный термин), чтобы быть таким:
Person 1 | A
Person 1 | A
Person 1 | A
Person 2 | A
Person 1 | B
Person 1 | B
и т.п.
Таким образом, он принимает значение пары Person 1 и A (в данном примере 3) и составляет три строки с Person 1 и A и делает это для каждой комбинации Person - Group. Не могу найти хорошие слова для поиска в Интернете.
reshape()
функциюreshape2
пакет в R. Это также может помочь вdput
двух примерах фреймов данных: один с вводом, а другой с выводом.Ответы:
Несмотря на то , что это очень полезный пакет, я думаю , изменение свойств является излишеством в этом случае, представитель может сделать эту работу.
Вот некоторые примеры данных:
Теперь, чтобы «расширить» это:
Я не мог найти способ работать непосредственно с фреймом данных на макушке головы, поэтому я работаю над каждой переменной в отдельности, а затем собираю их, что немного уродливо, но должно быть в порядке, если вы позаботитесь о том, чтобы всегда использовать та же самая переменная для подсчета.
источник
df[rep(seq_len(nrow(df)), df$count), 1:2]
?Вы можете использовать нестабильную функцию из пакета reshape.
Учитывая вышеупомянутое df (@ Gaël Laurans)
источник
untable
делает именно то, что я упомянул в своем комментарии :-) Спасибо за напоминание мне об этой функции!И
uncount
отtidyr
теперь дает тот же результат , как и выше.источник