我想使用名称列转置数据框以创建新的列名称。这是我的输入:
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
我虽然可以转置函数,但我不确定如何处理列名和行名。
提前致谢!
我们可以使用dcast
from data.table
which can take multiple value.var
columns
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] 删除。
我来说两句