在R中创建“数据透视表”,每行填充因子值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在R中创建“数据透视表”,每行填充因子值相关的知识,希望对你有一定的参考价值。

我想把日期输入这样:

library(plyr)
names(ChickWeight) <- tolower(names(ChickWeight))
ChickWeight$diet.name <- as.factor(revalue(ChickWeight$diet, c("1" = "Grain", "2" = "Grubs", "3" = "Scraps", "4" = "Free Range")))

创造:

> head(ChickWeight)
  weight time chick diet diet.name
1     42    0     1    1     Grain
2     51    2     1    1     Grain
3     59    4     1    1     Grain
4     64    6     1    1     Grain
5     76    8     1    1     Grain
6     93   10     1    1     Grain

> tail(ChickWeight)
    weight time chick diet  diet.name
573    155   12    50    4 Free Range
574    175   14    50    4 Free Range
575    205   16    50    4 Free Range
576    234   18    50    4 Free Range
577    264   20    50    4 Free Range
578    264   21    50    4 Free Range

从这些数据中,提取另一组数据(chick.feed),如下所示:

chick   diet.name
    1       Grain
    2       Grain
    .           .
    .           .
    .           .
   21       Grubs
   22       Grubs
    .           .
    .           .
    .           .
   31      Scraps
   32      Scraps
    .           .
    .           .
    .           .
   49  Free Range
   50  Free Range

即,我想创建一个“数据透视表”(chick.feed),其中每行的计算值(此处,每个chick)是该小鸡的所有各行的字母值(R-speak中的“因子”)在ChickWeight

(我的问题似乎与this one about converting from long to wide data相似但不完全相同。)

答案

无需重塑。只需抓住所需的列并保留唯一的行:

unique(ChickWeight[ , c("chick", "diet.name")])

以上是关于在R中创建“数据透视表”,每行填充因子值的主要内容,如果未能解决你的问题,请参考以下文章

在 Postgres 9.6 中创建数据透视表

如何在 Transact/SQL 中创建数据透视表?

在 LibreOffice Base 中创建等效数据透视表的 SQL (HSQLDB) 查询

如屏幕截图中所述,我想在 SQL 中创建一个数据透视表 [重复]

Pandas 均值数据透视表包含 NaN 值,即使在聚合之前填充了数据

有没有更好的方法在 R 中创建分位数“虚拟”/因子?