首页 > 解决方案 > 如何通过基于行值创建新变量来重塑数据框以进行分析

问题描述

有没有办法 newdf通过olddf为列名创建一个新变量并为结果创建一个变量来从中获取?谢谢你。

olddf <- data.frame('A' = c('Z1','Z2','Z3'), 
                    'B' = c(100, 200, 500),
                    'C' = c(90, 50, 60),
                    'D' = c(NA, 50, NA))

newdf <- data.frame('A' = c('Z1','Z2','Z3','Z1','Z2','Z3'), 
                    'B' = c(100, 200, 500, 100, 200, 500),
                    'var' = c('C', 'C', 'C', 'D', 'D', 'D'),
                    'res' = c(90, 50, 60, NA, 50, NA))

标签: rdataframereshape

解决方案


library(reshape2)
melt(olddf, id.vars = c('A','B'), value.name = 'res')

推荐阅读