基于名称列转置数据框

用户2904120

我想使用名称列转置数据框以创建新的列名称。这是我的输入:

Name        X   Y   Z
sample1_A   1   2   3
sample1_B   3   2   1
sample2_A   1   2   3
sample2_B   3   2   1

和预期的输出:

Name    XA  XB  YA  YB  ZA  ZB
sample1 1   3   2   2   3   1   
sample2 1   3   2   2   3   1

我虽然可以转置函数,但我不确定如何处理列名和行名。

提前致谢!

阿克伦

我们可以使用dcastfrom data.tablewhich can take multiple value.varcolumns

library(data.table)
dcast(setDT(df1)[, c("Name", "grp") := tstrsplit(Name, "_")], 
               Name ~grp, value.var = c("X", "Y", "Z"), sep = "") 
#      Name XA XB YA YB ZA ZB
#1: sample1  1  3  2  2  3  1
#2: sample2  1  3  2  2  3  1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章