我想获得将数据帧的每一行拆分为两行。这是我的意见:
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-A
和pr_001-A
,并且所有样本必须遵循相同的逻辑名。有些想法可以解决这个问题吗?谢谢!
答案 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;
}