嘿嘿,
我有一个带有家庭三重奏的data.frame,我想添加一个包含每个“id”(=后代)的完整同胞的列。
我的数据:
df
id dam sire
1: 83295 67606 79199
2: 83297 67606 79199
3: 89826 67606 79199
我想检索的内容:
df2
id dam sire fs1 fs2
1: 83295 67606 79199 83297 89826
2: 83297 67606 79199 83295 89826
3: 89826 67606 79199 83295 83297
我试过的:
(类似于:如何将数据框行转换为 R 中的列?)
library(dplyr)
library(splitstackshape)
df2 <- df %>%
group_by(dam,sire) %>%
summarise(id = toString(id)) %>%
cSplit("id") %>%
setNames(paste0("fs_", 1:ncol(.)))
colnames(df2) <- c("dam", "sire", "id", "fs1", "fs2")
每个父二人组只给我一行(而不是为每个“id”创建同一行):
df2
dam sire id fs1 fs2
1: 67606 79199 83295 83297 89826
在某些情况下不会有完整的同胞,在某些情况下会有 15 个。
提前感谢您的建议!:)