0

我是使用 R 的初学者,我想创建一个数据框,将一系列日期存储到各自的分类时间段。

paleo.periods <- c("Paleoindian","Early Paleoindian", "Middle Paleoindian", "Late Paleoindian", "Archaic","Early Archaic", "Middle Archaic","Late Archaic","Woodland","Early Woodland","Middle Woodland","Late Woodland","Late Prehistoric")

paleo.dates <- c(c(13500,8000), c(13500,10050) ,c(10050,9015), c(9015,8000), c(8000,2500), c(8000,5500), c(5500,3500), c(3500,2500), c(2500,1150), c(2500,2000), c(2000,1500), c(1500,1150), c(1150,500))

我希望安排出现在我可以参考给定时间段的地方,例如:“Late Woodland”,并获取它的开始和结束时间范围的相关向量,例如:(1500,1150)

我试着简单地这样做

paleo.seg <- data.frame(paleo.periods,paleo.dates)

但是,这会创建 3 个变量:周期列表、向量列表和古日期。我不确定它为什么要创建 3 个变量,因为我希望它只有 2 个:paleo.periods 和 Paleo.dates。我还想将它们称为paleo.seg$paleo.periods将返回期间列表(稍后使用它以某种方式单独引用期间),与日期相同。

本质上,我希望我的数据框看起来像这样:

paleoperiods           paleodates    
"Late Woodland"    1500,1100

因此,我可以专门查找字符串“Late Woodland”并找到矢量日期。我尝试在我当前的 data.frame 上执行此操作,并 "Woodland" %in% paleo.seg返回 false。所以我觉得我误解了如何构建一个合适的数据框,以及如何将一个分类变量与两个日期匹配。

4

1 回答 1

0

有几种方法可以解决这个问题,具体取决于您对数据框要做什么的推理。我的建议实际上是将日期列拆分为两个单独的日期列(根据您的描述,我相信开始和结束)。这样您就可以根据日期计算或使用规则。我发现这在查看数据时很有用,因为它使您能够根据日期的两个不同方面进行过滤。如果您希望它们位于同一列中,您可以将日期设为一个字符,以便将它们放在同一列中。但是,这种方法在将其用于探索性数据分析方面确实存在缺陷。这方面的一个例子是:

paleo.dates <- c("13500,8000","13500,10050","10050,9015","9015,8000", ...)

这将允许您查找 Late Woodland 并获得“1500,1100”,但如果您稍后会进行这种类型的分析,您将无法搜索 1500 之后发生的时段。

于 2019-03-08T16:25:30.563 回答