问题标签 [tidyverse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
724 浏览

r - 使用 purrr 递归处理任意层次结构

假设我想根据一些特定的标准修剪一棵由 R 中嵌套列表的层次结构组成的树。我可以使用以下方法“轻松”地做到这一点lapply

R for Data Science中,Hadley Wickham讨论purrr了许多可以替换apply用于处理分层数据的函数族的场景。但是,这些示例似乎处理单个嵌套列表,或者处理深度嵌套列表的特定节点。

有没有办法用来purrr完成递归任务,比如上面讨论的那个?

0 投票
1 回答
345 浏览

r - lubridate - select first non-Monday of every week.

Having a tibble of financial data, I would like to filter it by only selecting the first non-Monday of every week. Usually it will be a Tuesday, but sometimes it can be a Wednesday if Tuesday is a Holiday.

Here is my code that works in most cases

That said, there are some issues that I have not been able to solve so far.

The issue is for instance that it is skipping "2002-12-31" which is a Tuesday because it is considered as part of the first ISO week of 2003. There are a few similar issues.
My question is how could I select of the first non-Monday of every week without such issues while staying in the tidyverse (ie. not having to use xts / zoo class)?

0 投票
3 回答
1066 浏览

r - 如何使用 select 替换 tibble 中的各个列?

我尝试用select相同大小的数据替换所有选择的列。一个可重现的例子是

然后我得到错误

选择错误(iris,-one_of("Petal.Length")) = temp:找不到函数“select”

感谢您的任何评论。

0 投票
9 回答
29200 浏览

r - 使用 dplyr 删除所有变量为 NA 的行

我在一个看似简单的任务中遇到了一些问题:删除所有变量都NA使用 dplyr 的所有行。我知道可以使用基本 R 来完成(删除所有数据为 NA 的 R 矩阵中的行并删除 R 中数据文件的空行),但我很想知道是否有使用 dplyr 的简单方法.

例子:

上面的filter调用做了我想要的,但在我面临的情况下它是不可行的(因为有大量的变量)。我想可以通过使用filter_并首先使用(长)逻辑语句创建一个字符串来做到这一点,但似乎应该有一种更简单的方法。

另一种方法是使用rowwise()and do()

但这看起来不太好,尽管它完成了工作。其他想法?

0 投票
2 回答
1584 浏览

r - 如何从字符向量列表中删除元素?

我的列表看起来像这样:

我想根据该列表元素的名称从每个向量中删除元素,所以我最终得到了这个:

我可以做哪些操作才能i_have_this到达i_want_this

我已经通过 using 获得了相同结构中的逻辑向量列表purrr::map2(what_i_have, names(what_i_have), function(x, y) x == y),但是我的大脑在尝试子集时超载what_i_have

我错过了什么?你能帮我吗?

tidyverse(或基本 R)解决方案的奖励积分。

谢谢您的帮助。

0 投票
2 回答
1983 浏览

r - Scatter plot in ggplot, one numeric variable across two groups

I would like to create a scatter plot in ggplot2 which displays male test_scores on the x-axis and female test_scores on the y-axis using the dataset below. I can easily create a geom_line plot splitting male and female and putting the date ("dts") on the x-axis.

It seems with only one time series, ggplot2 does better with the data in wide format than long format. For instance, I could easily create two columns, "male_scores" and "female_scores" and plot those against each other, but I would like to keep my data tidy and in long format.

Cheers and thank you.

0 投票
0 回答
531 浏览

r - R + dplyr nest + purr - 跨数据框行内的嵌套评估模型

这将很难提出一个可重复的示例,因为目前还没有开源数据,而且我不确定我是否可以共享我拥有的数据。我会尽力解释它,如果这不起作用,我可能会花一些时间来模拟一些数据。希望这是一个简单的解决方案...

背景

我正忙着为我工作的领域(https://github.com/mathesong/kinfitr)创建一个用于动力学建模的 R 包。我正在尽我所能让一切都适合 tidyverse 工具。但是,有一个特定的用例,我不知道该怎么做,因为它涉及以不同的结构从几种不同的格式中提取数据,然后在模型中将它们拉到一起。

在页面上的 README 中,我提供了参考区域模型的解决方案,其中所有输入的长度相同,我可以使用以下工作流程:

问题

但是,对于动脉模型,输入参数如下:

  1. 脑动力学数据:时间、值、权重 - 每个向量的长度相同,在本例中为 38

  2. 血液动力学数据:血液输入 - 4096 行 x 4 列的数据框。为了方便起见,所有模型都将其作为数据帧读取,其中所有信息都已插入。

每个模型都需要所有三个向量的输入,以及血液输入数据框。

我目前将所有数据存储在一个列表中,每个测量都有一个元素。列表的每个元素都包含 1. 一个包含大脑动力学数据(大脑的每个区域,比如说 3 个区域)以及时间和权重的数据框,以及 2. 一个包含血液输入数据的数据框。因此我创建了我的最终数据框

这给我留下了以下内容

其中每个大脑数据包含以下内容:

从这一点来看,我无法弄清楚如何为每一行拟合模型。

这是我尝试过的:

我确信有一种方法可以使用地图功能来做到这一点,但我不太清楚如何。

我真的很感激任何关于我如何能够做到这一点的建议。提前感谢任何人!

0 投票
1 回答
132 浏览

r - 如何在 dplyr 中用不相等的列(反向 toString)分隔

我正在处理调查数据,试图在单个列中进行多个响应。问题是可能有 1-5 个答案,用逗号分隔。

我该如何转这个:

进入这个:

任何争论的帮助表示赞赏!

0 投票
3 回答
774 浏览

r - 给定列的最小值,在其他列中找到最小值(dplyr)

假设我们在 R 中有以下数据集:

我想制作下表:

在此表中,数据按“类型”汇总。列“MinValue1”是特定类型的最小值,列“MinValue2”是“Value2”的最小值,给定列“Value1”的最小值。列平均值*是所有观察值的一般平均值。

一种方法是实现对每种类型进行迭代并进行数学运算的循环。但是,我正在寻找一种更好/简单/漂亮的方式来执行此类操作。

我玩过“tidyverse”中的工具:

请注意,我们这里没有“MinValue2”列。另请注意,“summarise(..., MinValue2 = min(Value2), ...)”不起作用,因为此解决方案采用一种类型的所有观察值中的最小值。

我们可以玩“切片”,然后合并结果:

但请注意,“切片”工具在这里对我们没有帮助:“类型 A,Value1 5”应该具有“Value2”== 3,而不是切片返回时的 == 4。

那么,你们有没有一种优雅的方式来实现我所寻求的结果?谢谢!

0 投票
3 回答
5678 浏览

r - R:基于分类变量*列表*创建虚拟变量

我有一个数据框,其中包含一个包含字符串列表的分类变量,长度可变(这很重要,因为否则这个问题将与thisthis重复),例如:

所需的形式是在 中任何地方看到的每个唯一字符串的虚拟变量df$y,即:

这种天真的方法有效:

然而,大数据帧非常丑陋、懒惰和缓慢。

有什么建议么?有什么花哨的tidyverse


更新:我在下面得到了 3 种不同的方法。system.time我在我的(Windows 7、32GB RAM)笔记本电脑上使用真实数据集对它们进行了测试,该数据集由 1M 行组成,每行包含长度为 1 到 4 个字符串(约 350 个唯一字符串值中)的列表,磁盘上总共有 200MB。所以预期的结果是一个尺寸为 1M x 350 的数据框。tidyverse(@Sotos) 和base(@joel.wilson) 方法花了很长时间,我不得不重新启动 R。qdapTools(@akrun) 方法非常有效:

所以这是我将标记为接受的方法。