将一行拆分为两行

时间:2015-10-03 14:00:52

标签: r split row

我想获得将数据帧的每一行拆分为两行。这是我的意见:

input <- 'name sample1 sample2 sample3
              pr_001  533  411    633
              pr_002  478  447  427'  
input <- read.table(text=input, header=T)

获取此输出:

output <- 'name sample1 sample2 sample3
              pr_001-A  533  411    633
              pr_001-B  533  411   633
              pr_002-A  478  447  427  
              pr_002-B  478  447  427'
 output <- read.table(text=output, header=T)

因此,对于pr_001中的sample1,结果是两行具有相同的值pr_001-Apr_001-A,并且所有样本必须遵循相同的逻辑名。有些想法可以解决这个问题吗?谢谢!

2 个答案:

答案 0 :(得分:1)

首先使用(基于akrun's suggestion)复制行:

output <- input[rep(1:nrow(input), each = 2),]

然后将-A-B添加到每个name

output$name <- paste(output$name, c("A", "B"), sep = "-")

答案 1 :(得分:0)

public static boolean aGoodBase (char c) {                
    char [] charArray = { 'A', 'G', 'C', 'T' };
    boolean aBase;

    if (c == 'A' || c == 'G' || c == 'C' || c == 'T') 
    {
      aBase = true;     
    } 
    else 
    {
      aBase = false;
    }
    System.out.println(aBase);
    return aBase;
}