0

我试图弄清楚如何从变量的一系列行值中创建列。这是一个玩具表示,我有一套melted

          name variable value
        1  Dog       id     1
        2  Cat       id     2
        3 Fish       id     3
        4  Dog   number    23
        5  Cat   number    14
        6 Fish   number    27

我想看起来像这样:

         ID Name Number
       1  1  Dog     23
       2  2  Cat     14
       3  3 Fish     27

这样做的适当cast命令是什么?

4

2 回答 2

2

基本语法如下所示:

> library(reshape2)
> dcast(melted, name ~ variable)
  name id number
1  Cat  2     14
2  Dog  1     23
3 Fish  3     27

指定数据集,然后是公式 LHS 上的 ID,然后是 RHS 上的新列。你没有做任何聚合。此外,您不需要指定“值”列,尽管这样做可能是一种好习惯。

于 2014-07-25T19:34:33.263 回答
1

使用dplyr

 library(dplyr)
 library(tidyr)

 melted %>% 
 spread(variable,value) %>% 
 arrange(id)
 #   name id number
 #1  Dog  1     23
 #2  Cat  2     14
 #3 Fish  3     27
于 2014-07-25T19:33:01.643 回答