我有一个大数据框,如下所示:
name1 A A G
name2 C C T
name3 A G G
name4 H G G
name5 C - T
name6 C C C
name7 A G G
name8 G G A
我希望数据框改为:
name1 A A A A G G
name2 C C C C T T
name3 A A G G G G
name4 H H G G G G
name5 C C - - T T
name6 C C C C C C
name7 A A G G G G
name8 G G G G A A
我尝试使用R来执行此操作,但内存限制不允许我这样做。请帮我解决perl问题。我不知道如何编写perl脚本。谢谢。
答案 0 :(得分:4)
perl -lane'
BEGIN { $, ="\t" }
print shift(@F), map{ ($_)x2 } @F
' file
输出
name1 A A A A G G
name2 C C C C T T
name3 A A G G G G
name4 H H G G G G
name5 C C - - T T
name6 C C C C C C
name7 A A G G G G
name8 G G G G A A
答案 1 :(得分:2)
使用perl one-liner
perl -lane 'print join "\t", shift(@F), map {($_) x 2} @F' data.txt