将数据从宽格式转换为长格式

时间:2016-06-08 16:33:22

标签: r

我的数据如下所示:

Var1    Var1234 Var234  Var123456   Var12345678
  A        26     19        23          19
  B        25     10        11          27
  C        21     19        21          11
  D        29     18        22          26
  E        16     27        11          10

放置奇怪的变量名称的原因是为了表明变量长度不相同。我想将此数据转换为以下形状:

Var1    Var_names   Values
 A       Var1234      26
 B       Var1234      25
 C       Var1234      21
 D       Var1234      29
 E       Var1234      16
 A       Var234       19
 B       Var234       10
 C       Var234       19
 D       Var234       18
 E       Var234       27
 A      Var123456     23
 B      Var123456     11
 C      Var123456     21
 D      Var123456     22
 E      Var123456     11
 A      Var12345678   19
 B      Var12345678   27
 C      Var12345678   11
 D      Var12345678   26
 E      Var12345678   10

我正在尝试以下代码:

new_data <- reshape2::melt(old_data, id = "Var1")

但是它给出了以下错误:

Using var1 as id variables
Error in match.names(clabs, names(xi)) : 
  names do not match previous names

使用的重塑功能:

new_data <- reshape(old_data, direction ="long", varying = list(names(old_data)[2:ncol(old_data)]), v.names="Value", idvar = "Var1")

错误:

Error in `row.names<-.data.frame`(`*tmp*`, value = paste(d[, idvar], times[1L],  : 
  invalid 'row.names' length

我遵循this选项,但它对我没有帮助。

有谁能告诉我如何解决这个问题?

谢谢!

0 个答案:

没有答案