【发布时间】:2021-08-20 03:01:56
【问题描述】:
我正在寻求 R 方面的帮助。我想将三列添加到包含时间序列数据并具有大量 NA 值的现有数据框中。数据是关于考试成绩的。我要添加的第一列是可用的第一个测试分数。在第二列中,我想要最后的测试分数。在第三列中,我想通过将第一个和最后一个分数之间的差异除以已通过的测试数来计算每一行的导数。重要的是这些过去的一些测试有 NA 值,但我仍然想在划分时包括这些值。但是,我不想计算最后一个可用测试分数之后的 NA 值。
我的数据的一些解释: A 有几个数据框,它们都有不同人的测试分数。不同的人是行,每列代表一个测试分数。对于数据框中的同一测试,每个人有多个测试分数。 T1 列显示他们的第一个分数,T2 列显示一周后收集的第二个分数,依此类推。有些人比其他人开始得早,因此可以获得更多的考试成绩。此外,由于各种原因,开头和中间的一些分数缺失。请参阅下面的两个示例表,其中索引列是数据框的实际索引,而不是单独的列。索引中缺少一些数字(如 3),因为此人的行中只有 NA 值,我将其删除。索引保持这种状态对我来说很重要。
示例 1(测试 A):
| INDEX | T1 | T2 | T3 | T4 | T5 | T6 |
|---|---|---|---|---|---|---|
| 1 | NA | NA | NA | 3 | 4 | 5 |
| 2 | 57 | 57 | 57 | 57 | NA | NA |
| 4 | 44 | NA | NA | NA | NA | NA |
| 5 | 9 | 11 | 11 | 17 | 12 | NA |
示例 2(测试 B):
| INDEX | T1 | T2 | T3 | T4 |
|---|---|---|---|---|
| 1 | NA | NA | NA | 17 |
| 2 | 11 | 16 | 20 | 20 |
| 4 | 1 | 20 | NA | NA |
| 5 | 20 | 20 | 20 | 20 |
我现在的目标是将前面提到的三列添加到这些数据框中。例如 1 这看起来像:
| INDEX | T1 | T2 | T3 | T4 | T5 | T6 | FirstScore | LastScore | Derivative |
|---|---|---|---|---|---|---|---|---|---|
| 1 | NA | NA | NA | 3 | 4 | 5 | 3 | 5 | 0.33 |
| 2 | 57 | 57 | 57 | 57 | NA | NA | 57 | 57 | 0 |
| 4 | 44 | NA | NA | NA | NA | NA | 44 | 44 | 0 |
| 5 | 9 | 11 | 11 | 17 | 12 | NA | 9 | 12 | 0.6 |
例如2:
| INDEX | T1 | T2 | T3 | T4 | FirstScore | LastScore | Derivative |
|---|---|---|---|---|---|---|---|
| 1 | NA | NA | NA | 17 | 17 | 17 | 0 |
| 2 | 11 | 16 | 20 | 20 | 11 | 20 | 2.25 |
| 4 | 1 | 20 | NA | NA | 1 | 20 | 9.5 |
| 5 | 20 | 20 | 20 | 20 | 20 | 20 | 0 |
我希望我已经说清楚了,有人可以帮助我,在此先感谢!
【问题讨论】:
标签: r dplyr time-series tidyr derivative