假设我有这两个数据框:
big.table <- data.frame("idx" = 1:100)
small.table <- data.frame("idx" = sample(1:100, 10), "color" = sample(colors(),10))
我想像这样将它们合并在一起:
merge(small.table, big.table, by = "idx", all.y=TRUE)
idx color
1 1 <NA>
2 2 <NA>
3 3 salmon2
4 4 <NA>
5 5 <NA>
6 6 <NA>
...
20 20 <NA>
21 21 <NA>
22 22 blue4
23 23 grey99
24 24 <NA>
25 25 <NA>
26 26 <NA>
...
现在我需要填写表格下方“颜色”列中的值,以便将所有 NA 设置为表格中之前的值。
注意:问题涉及从计算机程序生成的日志文件,而不是任何标准日志格式。此日志文件中的行块属于在块的第一行中标识的“进程”。我已经在日志文件的相关行中提取了信息,其中大部分属于一个进程,并创建了一个包含该信息(行号、时间戳等)的数据表。现在我需要在此表中填写与 small.table 中的每一行对应的“进程”名称,该表具有行号。
big.table 顶部的行可能没有“进程”(上例中的颜色)。这些行应保持为 NA。
一旦第一个“进程”开始,该进程开始行和下一个进程之间的每一行都属于第一个进程。当第二个进程启动时,该进程启动行和下一个进程启动行之间的每一行都属于第二个进程。等等。进程行与我收集到日志文件数据框中的其他行的行号永远不会相同。
我的计划是将 big.table 创建为所有日志行号的序列,并将小表合并到其中。然后我可以“填写”进程名称并将大表合并到日志文件中,只保留日志文件以及与之相连的所有内容。
我对其他方法持开放态度。