表中的列的Rownames不起作用,转换为list或as.data.frame引入了额外的行

时间:2018-02-09 18:54:59

标签: r dataframe

我的数据是来自较大数据框的分类变量的计数表。我的目标是在该数据框中绘制每个治疗的活/死实例数。

数据框如下所示:

  Treatment Plate Sex                 Days Status
1          1     1   U                  NA   Dead
2          1     1   U                  NA   Dead
3          1     1   U                  NA   Dead
4          1     1   U                  NA   Alive
5          1     1   U                  NA   Dead
6          1     1   U                  NA   Dead

数据表如下所示:

  

表(子集$处理,子集$状态)

           Dead Still_kicking
  1         144             0
  3         141             3
  7         144             0
  10        105            39
  13         69             3
  Control    12            60
  Control2    2            70

我希望行名称为列(更喜欢单行)。当我尝试添加列时,我得到了这个:

> Status$names <- rownames(Status)
Warning message:
In Status$names <- rownames(Status) : Coercing LHS to a list
> Status
[[1]]
[1] 144

[[2]]
[1] 141

[[3]]
[1] 144

如果我转换为数据框,我会得到额外的行:

> Status <- data.frame(Status)
> Status
       Var1          Var2 Freq
1         1          Dead  144
2         3          Dead  141
3         7          Dead  144
4        10          Dead  105
5        13          Dead   69
6   Control          Dead   12
7  Control2          Dead    2
8         1 Still_kicking    0
9         3 Still_kicking    3
10        7 Still_kicking    0
11       10 Still_kicking   39
12       13 Still_kicking    3
13  Control Still_kicking   60
14 Control2 Still_kicking   70

1 个答案:

答案 0 :(得分:1)

您似乎在寻找() => getCarData(carMake)

在下面的示例中,我使用了unclass数据集来转换mtcars

table(mtcars$cyl, mtcars$am)

转换为数据帧格式。

0 1 4 3 8 6 4 3 8 12 2 可用于将rownames添加为第一列。

tibble::rownames_to_column

输出是:

library(tibble)
rownames_to_column(data.frame(unclass(table(mtcars$cyl, mtcars$am))), 
                   "rownames_col")