根据r中的其他列创建新列

时间:2017-01-04 08:48:40

标签: r dataframe

我有一个物种名称和Habitat_id的数据框。我想根据Habitat_id创建新列,并根据Habitat_id指定物种。例如,我的数据框如下所示:

Species_Name Habitat_id  
abc cde         85  
acc bcc         26  
acd dcc         138  
acp acp         35  
acp acp         37  
acp acp         38  
bpp cpp         26  
qpp qlp         26  
qpp qlp         22  
qpp qlp         24

我希望新数据框看起来像:

Species_Name 22 24 26 35 37 38 85 138  
abc cde       0  0  0  0  0  0  1  0  
acc bcc       0  0  1  0  0  0  0  0  
acd dcc       0  0  0  0  0  0  0  1  
acp acp       0  0  0  1  1  1  0  0  
bpp cpp       0  0  1  0  0  0  0  0  
qpp qlp       1  1  1  0  0  0  0  0

1 个答案:

答案 0 :(得分:2)

我们可以使用table

执行此操作
df2 <- as.data.frame.matrix(table(df1))
df2 <- cbind(Species_Name = row.names(df2), df2)
row.names(df2) <- NULL