51得票6回答
tidyr/dplyr中用于添加零计数行的适当习语

假设我有一些计数数据,看起来像这样:library(tidyr) library(dplyr) X.raw <- data.frame( x = as.factor(c("A", "A", "A", "B&quo...

41得票6回答
将列表列直接展开为多个列

我可以直接将列表列展开成n列吗? 假设该列表是规则的,其中所有元素长度相等。 如果我有一个字符向量而不是列表列,我可以使用tidyr::separate。我可以使用tidyr::unnest,但我们需要另一个辅助变量才能使用tidyr::spread。我是否遗漏了明显的方法? 示例数据:...

38得票2回答
使用data.frame/tibble展开具有重复标识符的数据

tidyr的文档表明gather和spread是可传递的,但使用"iris"数据的以下示例表明它们不是可传递的,但不清楚原因。 如有澄清,将不胜感激。iris.df = as.data.frame(iris) long.iris.df = iris.df %>% gather(key =...

33得票2回答
如何在tidyverse中转置数据框?

使用基本的R语言,我可以转置一个数据框,例如mtcars,该数据框具有相同类别的所有列: as.data.frame(t(mtcars)) 或者使用管道: library(magrittr) mtcars %>% t %>% as.data.frame 如何在tidyr...

32得票2回答
当需要的变量数量未知时,如何使用tidyr::separate

我有一个包含电子邮件通信的数据集。例如:library(dplyr) library(tidyr) dat <- data_frame('date' = Sys.time(), 'from' = c("person1@gmail.com", "pe...

30得票4回答
使用spread函数处理具有重复行标识符的数据

我有一个长格式的数据框,其中同一日期和人员有多个条目。jj <- data.frame(month=rep(1:3,4), student=rep(c("Amy", "Bob"), each=6), A=c(9, 7, 6, 8, 6,...

30得票3回答
data.table的等效tidyr::complete()函数

tidyr::complete()函数会为数据中缺失的列值组合添加行,以便填充 data.frame。例如: library(dplyr) library(tidyr) df <- data.frame(person = c(1,2,2), obse...

27得票5回答
整洁的宇宙(tidyverse)- 将命名向量转换为数据框(data.frame)/ tibble的首选方式

我经常使用 tidyverse ,面临的挑战是如何将已命名向量转换为以向量名称为列名的 data.frame/tibble 。 有没有更加优选/适用于 tidyverse 的方法来做到这一点呢? 编辑:这与以下 GitHub 问题有关:此处和此处 所以,我想要: require(tidyv...

26得票4回答
将pivot_longer转换成多列

我正在尝试使用pivot_longer。但是,我不确定如何使用names_sep或names_pattern来解决这个问题。dat <- tribble( ~group, ~BP, ~HS, ~BB, ~lowerBP, ~upperBP, ~lowerHS, ~uppe...

24得票3回答
pivot_longer 函数在多个类别下出现错误(“无共同类型”)

我正在对多列运行pivot_longer(即两个字符列和一个数字列)。我遇到了与类不匹配相关的错误。 我查看了文档,没有发现任何“强制”选项,在pivot_longer中指定要使用的类别,或允许函数自动检测最通用的类别的参数。 有没有pivot_longer内部的参数可以避免此错误?还是需...