14得票3回答
tidyr使用separate_rows处理多列数据

我有一个数据框,其中一些单元格包含逗号分隔值的字符串:d <- data.frame(a=c(1:3), b=c("name1, name2, name3", "name4", "name5, name6"), c=c("name7","name8, nam...

14得票3回答
将长格式转换为宽格式,并创建包含二进制值的列

我知道 tidyr 包中的 spread 函数,但是我无法实现它。我有一个定义如下的 2 列 data.frame。 我需要将列 Subject 转置为二进制列,其中1和0。以下是数据框:studentInfo <- data.frame(StudentID = c(1,1,1,2,3,...

14得票3回答
使用tidyverse;在组内计算值变化前后的计数,为每个唯一的移位生成新变量。

我正在寻找一种基于tidyverse的解决方案,该方案能够在数据表格tbl中针对每个组id内唯一值TF的出现次数进行计数。当TF发生变化时,我希望从该点向前和向后都进行计数。这些计数应存储在一个新变量PM##中,以便PM##包含每个唯一转换中的加减。 这个问题类似于我之前提出的一个问题,但是...

14得票2回答
使用tidyr::separate将字符串在最后一个空格字符处拆分

假设我有这样一个数据框:df<-data.frame(a=c("AA","BB"),b=c("short string","this is the longer string")) 我希望使用基于最后一个空格出现的正则表达式来分割每个字符串。 我尝试了:library(dplyr) li...

14得票4回答
在Ubuntu 18.04和R 4.0.2上安装tidyr时出现错误。

尝试安装tidyverse包时,我在安装依赖项tidyr时遇到错误。 以下是我收到的消息尾部:cpp11.cpp:31:100: error: ‘unmove’ is not a member of ‘cpp11’ return cpp11::as_sexp(simplifyPiec...

13得票6回答
group_by() 和 into fill() 不按预期工作

我正在尝试使用dplyr和tidyr对一些格式不良的数据进行最后观察结果前向操作。但它并没有像我预期的那样工作。library(dplyr) library(tidyr) df <- data.frame(id=c(1,1,2,2,3,3), emai...

13得票4回答
如何避免使用pivot_wider()函数时删除列名的因子水平?

我希望pivot_wider创建一个列,如果作为names_from参数时因为因子的级别存在但从未在数据中出现而创建NAs。例如,第一行给了我一个两列的表格,但我真的希望下面是三列的表格。tibble(Person=c("Sarah", "Jackson", "Jackson"), Rank=...

12得票1回答
tidyr::gather与reshape2::melt在矩阵上的区别

我长期以来一直在以一种非标准的方式使用reshape2::melt:我运行数字实验并得到一个矩阵作为结果。然后我将其转换为长格式,并生成一些图像。受到reshape2和tidyr之间的相似性的启发,我现在正在尝试在类矩阵的对象上实现完全相同的输出。但目前没有成功:library(reshape...

12得票3回答
使用tidyr中的gather函数时保留属性(属性不相同)

我有一个数据框需要拆分成两个表以满足 Codd 的第三范式。在简单的情况下,原始数据框大致如下:library(lubridate) > (df <- data.frame(hh_id = 1:2, income = c(55000, 9400...

12得票4回答
我该如何使用tidyr在每个分组变量的值中填充已完成的行?

假设我有一些人选择了几个选项。每个人有一行数据,但我想要每个人和选项都有一行数据。比如,如果有10个人,每个人有3个选项,那么现在有10行数据,而我希望有30行。 其他所有变量都应该复制到新的行中。例如,如果有一个性别变量,那么它应该在 ID 内是恒定的。(我按照这种方式设置我的数据以便使用...