【问题标题】:transpose from wide format to long format using a linux command使用 linux 命令从宽格式转换为长格式
【发布时间】:2015-09-29 17:55:02
【问题描述】:

我希望最好使用 linux 语句或 python 语句将文件从宽格式转换为长格式。 我的输入数据看起来像这样:

   head1 M1 M2 M3 M4 M5 M6 M7
   abcd A B C D E F G
   efgh A B C D E F G
   ijkl A B C D E F G

并且希望输出是这样的:

   abcd A
   abcd B
   abcd C
   abcd E
   abcd F
   abcd G
   efgh A
   efgh B
   efgh C
   ...

是否可以这样做,我遇到过 R 代码,但由于文件很大,因此希望避免使用它?

谢谢

【问题讨论】:

  • “是否可以这样做” 是的。

标签: python linux awk transpose


【解决方案1】:

求救!

$ awk '{for(i=2;i<=NF;i++) print $1,$i}' file
head1 M1
head1 M2
head1 M3
head1 M4
head1 M5
head1 M6
head1 M7
abcd A
abcd B
abcd C
abcd D
abcd E
abcd F
abcd G
efgh A
efgh B
...

如果你想跳过标题

$ awk 'NR>1{for(i=2;i<=NF;i++) print $1,$i}' file

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-14
    • 2018-01-31
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    相关资源
    最近更新 更多