在数据框中子集任意数量的行并保留其间的所有行

时间:2014-08-23 22:22:48

标签: r dplyr

我正在尝试根据两个不同列中的一组不同值来对数据帧中的行进行子集化。以下是数据框结构的简化示例。

Task=c("Task1", "Task2", "Task2", "Task3", "Task3", "Task1", "Task2", "Task1", "Task2","Task3","Task1")
SubTask=c("Subtask1", NA, NA, NA, NA, "Subtask1", NA, "Subtask1", NA, NA, "SubTask2")
Event=c("Start", NA, NA, NA, NA, "Event1", NA, "Event2", NA, NA, "Start")

sample=data.frame(Task, SubTask, Event)

每行表示对该示例中的一个参与者的实验观察。每个参与者同时执行三个任务(Task1,Task2和Task3)。我想分析这些任务的性能度量,但为了达到这一点,我需要将我的行从SubTask1的Start子集到每个任务的SubTask2开始之前的行。

我想要实现这一目标的一种方法是在SubTask1和SubTask2之间的空行中复制SubTask的值。但是,在列值上使用诸如lag()之类的函数来复制到下一行不起作用。 我将不胜感激任何有关如何处理此问题的建议,或者更广泛地说,如何从数据框中对任意数量的行进行子集化,同时保留列中某些值之间的所有行。

谢谢!

编辑: 对不起,这是我的第一个问题,我无法提供图片。但是,我希望我的数据框看起来像这段代码提供的内容:

Task=c("Task1", "Task2", "Task2", "Task3", "Task3", "Task1", "Task2", "Task1", "Task2","Task3")
SubTask=c("Subtask1", "Subtask1", "Subtask1", "Subtask1", "Subtask1", "Subtask1", "Subtask1", "Subtask1", "Subtask1", "Subtask1")
Event=c("Start", NA, NA, NA, NA, "Event1", NA, "Event2", NA, NA )

sample.Subtask1=data.frame(Task, SubTask, Event)

0 个答案:

没有答案