dplyr Mutate创建矩阵而不是矢量

时间:2017-12-14 22:09:42

标签: r dplyr

我正在创建一个新列,查看数据框中的条件,并提醒我是否需要调查或监控问题。添加列的代码如下所示:

library(dplyr)
df %>%
  mutate("Status" = 
           ifelse(apply(.[2:7], 1, sum) > 0 & .[8] > 0, "Investigate", 
                  "Monitor"
                  )
         )

如果我在这个新生成的列上运行命令class(df$Status),则该类被列为“矩阵”。什么?为什么不将它列为“字符”。 如果我看一下我的数据框架的结构,可能是关键的一些奇怪,但我不明白为什么。请注意,列出的第一列看起来只是整数,然后列出的第三列,即相同的数据,具有所有这些'attr'措辞。发生了什么事?

 $ 2017-08 : int  NA 1 NA 1 1 2 NA NA NA NA ...
 $ 2017-09 : int  NA NA 1 NA NA NA NA NA NA NA ...
 $ 2017-10 : int  NA NA NA NA NA NA 1 NA NA NA ...
 - attr(*, "vars")= chr "Material"
 - attr(*, "drop")= logi TRUE
 - attr(*, "indices")=List of 34
  ..$ : int 0
  ..$ : int 1
  ..$ : int 2
  ..$ : int 3
  ..$ : int 4
...continued...
 - attr(*, "group_sizes")= int  1 1 1 1 1 1 1 1 1 1 ...
 - attr(*, "biggest_group_size")= int 1
 - attr(*, "labels")='data.frame':  34 obs. of  1 variable:

我之前对变量进行了分组,有时候对于魔术上的分组有帮助。此外,我经常需要将元数据转换回数据帧以使其他例程在我的代码中工作。这可能与也可能没有关系。

0 个答案:

没有答案