2013-09-27 3 views
2

Привет У меня есть данные выглядит следующим образом:R перекроить dcast 0 и 1

partNumber manufacturer supplier availability 
p1   m1   s1  100 
p1   m1   s2  500 
p2   m2   s1  200 
p2   m2   s3  300 
.... 

Мой ожидаемый результат должен выглядеть следующим образом:

partNumber manufacturer s1 s2 s3... 
p1   m1   100 500 0 ... 
p2   m2   200 0  300 ... 
... 

Я пытался реализовать это с помощью dcast в reshape2 пакет, и это моя команда:

df.dcast <- dcast(df, partNumber + manufacturer ~ supplier, value.var="availability") 

Однако выходное значение только 0 и 1, похоже, оказалось выход быть ч eckout вместо отображения значения доступности.

partNumber manufacturer s1 s2 s3... 
p1   m1   1  1  0 ... 
p2   m2   1  0  1 ... 
... 

Кстати, в то время как я выполнить команду, есть предупреждение, что

Aggregation function missing: defaulting to length... 

Я не совсем понимаю, что функция делает агрегацию делать и любая помощь и объяснение будет apprecited.

+0

Если ваша парная пар PartNumber и производитель уникальны, вы можете добавить 'fun.aggregate' как сумму или значение, и это должно сработать. 1s и 0s, которые вы видите, являются результатом функции агрегации, длины. Аргумент fun.aggregate сообщает dcast, какую функцию выполнять при значениях, найденных при наличии, с тем же номером детали и производителем. – TheComeOnMan

+0

Я не могу воспроизвести вашу ошибку с предоставленным вами образцом данных. –

+1

Спасибо за ваш быстрый ответ, я думал об одном и том же, однако они должны быть уникальными, но выглядят как 1s и 0s вызваны «неповторимым» элементом partNumber и производителем ... Что мне делать в Это дело. Запускать уникальный, прежде чем делать актерский состав? –

ответ

3

Когда я делаю это с помощью примера данных я получаю:

df.dcast <- dcast(df, partNumber + manufacturer ~ supplier, value.var="availability") 
df.dcast 
    partNumber manufacturer s1 s2 s3 
1   p1   m1 100 500 NA 
2   p2   m2 200 NA 300 

Что, скорее всего, происходит то, что ваш availability столбец не то, что вы думаете. Возможно, он преобразован в переменную фактора, потому что в этом столбце во входном файле был текст. Если это так, то вам необходимо прочитать R-FAQ 7.10

Смежные вопросы