gpt4 book ai didi

根据特定列中的值重复数据框中的行

转载 作者:行者123 更新时间:2023-12-02 10:59:28 25 4
gpt4 key购买 nike

我想根据samples重复数据框中的整行。专栏。

我的输入:

df <- 'chr start end samples
1 10 20 2
2 4 10 3'
df <- read.table(text=df, header=TRUE)

我的预期输出:

df <- 'chr start end  samples
1 10 20 1-10-20-s1
1 10 20 1-10-20-s2
2 4 10 2-4-10-s1
2 4 10 2-4-10-s2
2 4 10 2-4-10-s3'

知道如何明智地执行它吗?

最佳答案

我们可以使用expandRows根据'samples'列中的值展开行,然后转换为data.table,按'chr'分组,我们使用 sprintf 将列与行序列粘贴在一起以更新“样本”列。

library(splitstackshape)
setDT(expandRows(df, "samples"))[,
samples := sprintf("%d-%d-%d-%s%d", chr, start, end, "s",1:.N) , chr][]
# chr start end samples
#1: 1 10 20 1-10-20-s1
#2: 1 10 20 1-10-20-s2
#3: 2 4 10 2-4-10-s1
#4: 2 4 10 2-4-10-s2
#5: 2 4 10 2-4-10-s3

注意:当我们加载splitstackshape时,data.table将会被加载。

关于根据特定列中的值重复数据框中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38499032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com