复制并附加到 R 中的数据框
Replicate and append to dataframe in R
我相信这相当简单,尽管我是使用 R 和代码的新手。我有一个数据集,每个啮齿动物陷阱站点都有一行。然而,在 4 年的时间里,有 8 次被诱捕。我想要做的是扩展陷阱站点数据并为每一行附加一个数字 1 到 8。
然后我可以用陷阱访问标记它们,以便与获得的陷阱数据进行后续连接。
我已经成功地使用以下代码复制了这些行。虽然行在数据框中扩展为 1、1.1...1.7、2、2.1...2.7 等。但我不知道如何将其转换为可用的基于列的 ID。
structure(list(TrapCode = c("IA1sA", "IA2sA", "IA3sA", "IA4sA",
"IA5sA"), Y = c(-12.1355987315, -12.1356879776, -12.1357664998,
-12.1358823313, -12.1359720852), X = c(-69.1335789865, -69.1335225279,
-69.1334668485, -69.1333847769, -69.1333226532)), row.names = c(NA,
5L), class = "data.frame")
gps_1 <– gps_1[rep(seq_len(nrow(gps_1)), 3), ]
给予
"IA5sA", "IA1sA", "IA2sA", "IA3sA", "IA4sA", "IA5sA", "IA1sA",
"IA2sA", "IA3sA", "IA4sA", "IA5sA"), Y = c(-12.1355987315, -12.1356879776,
-12.1357664998, -12.1358823313, -12.1359720852, -12.1355987315,
-12.1356879776, -12.1357664998, -12.1358823313, -12.1359720852,
-12.1355987315, -12.1356879776, -12.1357664998, -12.1358823313,
-12.1359720852), X = c(-69.1335789865, -69.1335225279, -69.1334668485,
-69.1333847769, -69.1333226532, -69.1335789865, -69.1335225279,
-69.1334668485, -69.1333847769, -69.1333226532, -69.1335789865,
-69.1335225279, -69.1334668485, -69.1333847769, -69.1333226532
)), row.names = c("1", "2", "3", "4", "5", "1.1", "2.1", "3.1",
"4.1", "5.1", "1.2", "2.2", "3.2", "4.2", "5.2"), class = "data.frame")
我有一列 Trap_ID 当前是唯一标识符。我希望在复制之后我可以将迭代编号附加到此以将其作为唯一 ID。
例如:
Trap_ID
IA1sA.1
IA1sA.2
IA1sA.3
IA2sA.1
IA2sA.2
IA2sA.3
简单地使用交叉连接(即,在没有 by 列的情况下连接到 return 两个集合的笛卡尔积):
mdf <- merge(data.frame(Trap_ID = 1:8), trap_side_df, by=NULL)
我相信这相当简单,尽管我是使用 R 和代码的新手。我有一个数据集,每个啮齿动物陷阱站点都有一行。然而,在 4 年的时间里,有 8 次被诱捕。我想要做的是扩展陷阱站点数据并为每一行附加一个数字 1 到 8。
然后我可以用陷阱访问标记它们,以便与获得的陷阱数据进行后续连接。
我已经成功地使用以下代码复制了这些行。虽然行在数据框中扩展为 1、1.1...1.7、2、2.1...2.7 等。但我不知道如何将其转换为可用的基于列的 ID。
structure(list(TrapCode = c("IA1sA", "IA2sA", "IA3sA", "IA4sA",
"IA5sA"), Y = c(-12.1355987315, -12.1356879776, -12.1357664998,
-12.1358823313, -12.1359720852), X = c(-69.1335789865, -69.1335225279,
-69.1334668485, -69.1333847769, -69.1333226532)), row.names = c(NA,
5L), class = "data.frame")
gps_1 <– gps_1[rep(seq_len(nrow(gps_1)), 3), ]
给予
"IA5sA", "IA1sA", "IA2sA", "IA3sA", "IA4sA", "IA5sA", "IA1sA",
"IA2sA", "IA3sA", "IA4sA", "IA5sA"), Y = c(-12.1355987315, -12.1356879776,
-12.1357664998, -12.1358823313, -12.1359720852, -12.1355987315,
-12.1356879776, -12.1357664998, -12.1358823313, -12.1359720852,
-12.1355987315, -12.1356879776, -12.1357664998, -12.1358823313,
-12.1359720852), X = c(-69.1335789865, -69.1335225279, -69.1334668485,
-69.1333847769, -69.1333226532, -69.1335789865, -69.1335225279,
-69.1334668485, -69.1333847769, -69.1333226532, -69.1335789865,
-69.1335225279, -69.1334668485, -69.1333847769, -69.1333226532
)), row.names = c("1", "2", "3", "4", "5", "1.1", "2.1", "3.1",
"4.1", "5.1", "1.2", "2.2", "3.2", "4.2", "5.2"), class = "data.frame")
我有一列 Trap_ID 当前是唯一标识符。我希望在复制之后我可以将迭代编号附加到此以将其作为唯一 ID。
例如:
Trap_ID
IA1sA.1
IA1sA.2
IA1sA.3
IA2sA.1
IA2sA.2
IA2sA.3
简单地使用交叉连接(即,在没有 by 列的情况下连接到 return 两个集合的笛卡尔积):
mdf <- merge(data.frame(Trap_ID = 1:8), trap_side_df, by=NULL)