R 从数据帧中提取两列并将其与第二个数据帧合并
我在处理数据帧时遇到了一些问题 我有一个数据帧(df1,参见图1),从中我需要从最后一列(注释)中提取ID,我可以使用下一行:R 从数据帧中提取两列并将其与第二个数据帧合并,r,database,R,Database,我在处理数据帧时遇到了一些问题 我有一个数据帧(df1,参见图1),从中我需要从最后一列(注释)中提取ID,我可以使用下一行: genes <- sapply(df1$Comment, function(x){ paste(substring(x, as.numeric(gregexpr("SL1344_RS", x)[[1]]), as.numeric(gregexpr("SL1344_RS", x)[[1
genes <- sapply(df1$Comment, function(x){
paste(substring(x, as.numeric(gregexpr("SL1344_RS", x)[[1]]),
as.numeric(gregexpr("SL1344_RS", x)[[1]]) + 13), collapse=";")
})
现在我需要将这个ID和它们对应的频率值合并在“freq”列下,这样我就得到了两列,一列是ID,另一列是频率值
你可以通过简单的行动来实现
genes.freq <- cbind(genes, df1$freq)
<代码> Ge.FrqHi,请不要在堆栈溢出上使用代码/数据的图像,考虑我们的指南如何提供A,您可能想阅读:这确实解决了这个问题,谢谢您的快速回答!!我有一个新的小要求。有些基因有一个复杂的ID;例如,“SL1344_RS09335;SL1344_RS09330”,是否有办法将它们分成两个单独的行,其中前一个频率值适用于两个行?提前谢谢你是说分手?如果是,你应该提出一个新问题。如果你想让我帮忙,试着把我链接起来,或者把问题的链接贴在这里作为评论。请添加一个具有预期输出的简单玩具示例。看看我是如何创建df1的。祝你一切顺利!PS:在任何cae中,如果您不介意的话,您可能希望查看strsplit(df$column with the string,“;”)将我的答案视为有用。谢谢
genes.freq <- cbind(genes, df1$freq)
names <- df2$Product[ match(genes.freq$gene, df2$Code) ]
genes.freq.names <- cbind(
genes.freq, names)
df1 <- data.frame(
gene = c("SL1344_RS000040", "SL1344_RS000095", "SL1344_RS000105"),
freq = c(7, 21 , 51))
df2 <- data.frame(
code = c("SL1344_RS000095", "SL1344_RS000040", "SL1344_RS000105"),
product = c("Product C", "Product A", "Product B"))
df1$Product.Names <- df2$product[ match(df1$gene, df2$code) ]
df1