2016-03-01 3 views
-1

У меня есть dataframe похожее на это:конкретных изменение порядка data.frame R

metagenome gene abundance 
g4666202 ENDO-1,4-BETA-GLUCANASE (EC 3.2.1.4) 1 
g4666203 ENDO-1,4-BETA-GLUCANASE (EC 3.2.1.4) 1 
g4666203 Transporter, Sodium/bile acid symporter family 4 
g4666206 phi-Carotenoid synthase (EC 1.3.-.- and EC 2.1.1-) 4 
g4666203 phi-Carotenoid synthase (EC 1.3.-.- and EC 2.1.1-) 1 
g4666205 phi-Carotenoid synthase (EC 1.3.-.- and EC 2.1.1-) 2 

и хотел бы изменить порядок следующим образом:

gene g4666202 g4666203 g4666206 g4666205 
ENDO-1,4-BETA-GLUCANASE (EC 3.2.1.4) 1 1 NA NA 
Transporter, Sodium/bile acid symporter family NA 4 Na NA 
phi-Carotenoid synthase (EC 1.3.-.- and EC 2.1.1-) NA 1 4 2 

Любые идеи, как код что? С уважением, Deni

ответ

0

Мы можем использовать dcast

library(reshape2) 
dcast(df1, gene~metagenome, value.var='abundance') 
#             gene g4666202 g4666203 g4666205 g4666206 
#1    ENDO-1,4-BETA-GLUCANASE (EC 3.2.1.4)  1  1  NA  NA 
#2 phi-Carotenoid synthase (EC 1.3.-.- and EC 2.1.1-)  NA  1  2  4 
#3  Transporter, Sodium/bile acid symporter family  NA  4  NA  NA 

Или spread из tidyr

library(tidyr) 
spread(df1, metagenome, abundance) 
+0

Спасибо много. Работает как шарм. –

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