r - 通过 "multiplying"通过其他列的名称转换列的元素

标签 r dataframe reshape

下面是一个例子。如何将具有 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/

相关文章:

python - 如何替换整个 csv 文件中的特定单词?

r - 使用 dplyr 实用程序将纯文本数据 reshape 为常规表格数据的任何方法?

python - 通过查看第一列来堆叠一对列

python - 如何防止索引旋转?

R 聚类产生错误消息

r - 在 ggplot2 r 中添加轴刻度和标签

r - 如何增强 for 循环

r - 创建的包未从 NAMESPACE 文件中导入的包运行函数

Python Pandas : check if items from list is in df index

python - 将一系列值随机插入到 pd.dataframe 中