【发布时间】:2020-01-15 01:06:23
【问题描述】:
我正在尝试重新排列 R 中的表格。
我有(例如)52 只狮子。在 4 个时间点采集的血液样本中,对每只狮子的 92 种不同标记进行了测量。目前,我有一个狮子 ID 列,它有 208 行长,因为它排列在“样本编号”列旁边,表示它所采用的时间点,时间 1、2、3、4。然后是来自 92 种不同标记的血液样本的值。所以总共 94 列(ID、样本编号和标记类型)。
查看数据:
'ID' 'Sample Number' 'Marker type'
-Lion 1 time 1 Marker 1 Marker 2 Marker 3...Marker 92
-Lion 1 time 2 Marker 1 Marker 2 Marker 3...Marker 92
-Lion 1 time 3 Marker 1 Marker 2 Marker 3...Marker 92
-Lion 1 time 4 Marker 1 Marker 2 Marker 3...Marker 92
-Lion 2 time 1 Marker 1 Marker 2 Marker 3...Marker 92
-Lion 2 time 2 Marker 1 Marker 2 Marker 3...Marker 92
-Lion 2 time 3 Marker 1 Marker 2 Marker 3...Marker 92
-Lion 2 time 4 Marker 1 Marker 2 Marker 3...Marker 92
-Lion 3 time 1 Marker 1 Marker 2 Marker 3...Marker 92
-Lion 3 time 2 Marker 1 Marker 2 Marker 3...Marker 92
-Lion 3 time 3 Marker 1 Marker 2 Marker 3...Marker 92
-Lion 3 time 4 Marker 1 Marker 2 Marker 3...Marker 92
我需要对其进行更改,以便为 52 个狮子 ID 提供一列(而不是每只狮子 4 行),然后为每个 92 个标记提供 4 列样本编号,总共提供 369 列。
预期输出数据:
'ID' 'Sample Number' 'Marker type'
lion 1 time 1 marker 1 time 2 marker 1 time 3 marker 1 time 4 marker 1
lion 2 time 1 marker 2 time 2 marker 2 time 3 marker 2 time 4 marker 2
lion 3 time 1 marker 3 time 2 marker 3 time 3 marker 3 time 4 marker 3
我并不是特别想为时间 1 标记 1 创建一个新变量,而是为标记 1 创建一个列,分为 4 列时间,其中 1 行用于狮子。标记 2 也是如此,依此类推。
【问题讨论】:
-
这是
matrix还是data.frame? -
也许你可以提供一个实际的(而且小得多的)示例数据集?我建议使用 2-3 只狮子,每只 3 次,有 4 个标记,每只使用不同的值;通用解决方案同样适用于 4 和 400 个标记。同样,在给定该输入的情况下,将其(手动,如果需要,使用 excel)转换为您的预期输出。然后以编程方式 (
data.frame) 或dput(x)将其包含在问题中。
标签: r