下面是一个例子。如何将具有 names
列的数据帧 df
转换为下面的 df.transformed
形式?
> df <- data.frame("names" = c("y1", "y2"), "x1" = 1:2, "x2" = 4:5)
> df
names x1 x2
1 y1 1 4
2 y2 2 5
> df.transformed <- data.frame("y1x1" = 1, "y1x2" =4, "y2x1" = 2, "y2x2" = 5)
> df.transformed
y1x1 y1x2 y2x1 y2x2
1 1 4 2 5
最佳答案
代码
require(data.table); setDT(df)
dt = melt(df, id.vars = 'names')[, col := paste0(variable, names)]
out = dt$value; names(out) = dt$col
结果
> data.frame(t(out))
x1y1 x1y2 x2y1 x2y2
1 2 4 5
关于r - 通过 "multiplying"通过其他列的名称转换列的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58996293/