合并数据框时,我需要在R中重组行和列

问题描述

我已经在R中进行了完整的空间分析,以进行生态学研究。为此,我必须在rgeos软件包中运行各种geo操作,例如gUnion,gIntersect,gArea等。

当我终于开始将所有数据合并在一起时,我遇到了问题。

我正在处理农田的数据,当我使用gintersect提取栖息地特征时(一层是农场,一层是土地用途,两者都是矢量.shp文件),尽管在同一个农场。

我想知道是否有可能为每个栖息地创建新的列,而不是为新的行创建一个,以便每个农场只有一行数据。

下面的示例

set.seed(100)

WhatIHave <- data.frame(ID = c(1,2,3,4,5,6),farm = c('a','a','b','b'),habitat = c("urban","pasture","urban","pasture"))




WhatIWant <- data.frame(ID = c(1,3),habitat1 = c("urban","urban"),habitat2 = c("pasture","pasture"))


WhatIHave
WhatIWant

下面的真实数据框。如您所见,应该只有3行(一个服务器场有两个字段,所以每个字段有一行,因为它们是不同的),并且有很多重复的值,因为应该只有三行,因此我需要将Habitat和Habitat_Area_Hectares设置为多列每行。

enter image description here

解决方法

我知道了。

bufflanduse

这将从行中提取值,并创建一个新列(键),并用提供的数据(值)填充它(在我的情况下是区域)。现在,每个农场都有一个栖息地和相关区域的列表。