来自dplyr的summarise_each给出了字符错误

时间:2015-11-18 15:05:24

标签: r dplyr

我在使用时看到错误 dplyr::summarise_each总结一下角色 data.frame中的向量。

举一个简单的例子,请考虑此示例data.frame

tmp <- data.frame(A=c("a", "b", "b", "c", "c", "d", "d"),
          B=c("u", "v", "v",  NA,  NA, "x", "y"),
          stringsAsFactors = FALSE)
tmp

| A | B   |
|---+-----|
| a | u   |
| b | v   |
| b | v   |
| c | nil |
| c | nil |
| d | x   |

现在,我想用“A”对这个data.frame进行分组并运行一点 剩余列上的函数:

uniqueorna <- function(x) {
  if (length(unique(x)) == 1) {
    unique(x)[1]
  } else {
    NA
  }
}

使用dplyr::summarise_each正常工作 第一行:

library("dplyr")
tmp[1:6,] %>% group_by(A) %>% summarise_each(funs(uniqueorna(.)))

| A | B   |
|---+-----|
| a | u   |
| b | v   |
| c | nil |
| d | x   |

但它在完整的data.frame

上失败了
tmp[1:7,] %>% group_by(A) %>% summarise_each(funs(uniqueorna(.)))

Error: expecting a string

我想明白为什么会失败。还有一种崩溃的方式 像这样将不同的字符串值转换为NA。

0 个答案:

没有答案