问题标签 [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.
r - 使用 purrr 递归处理任意层次结构
假设我想根据一些特定的标准修剪一棵由 R 中嵌套列表的层次结构组成的树。我可以使用以下方法“轻松”地做到这一点lapply
:
在R for Data Science中,Hadley Wickham讨论purrr
了许多可以替换apply
用于处理分层数据的函数族的场景。但是,这些示例似乎处理单个嵌套列表,或者处理深度嵌套列表的特定节点。
有没有办法用来purrr
完成递归任务,比如上面讨论的那个?
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)?
r - 如何使用 select 替换 tibble 中的各个列?
我尝试用select
相同大小的数据替换所有选择的列。一个可重现的例子是
然后我得到错误
选择错误(iris,-one_of("Petal.Length")) = temp:找不到函数“select”
感谢您的任何评论。
r - 使用 dplyr 删除所有变量为 NA 的行
我在一个看似简单的任务中遇到了一些问题:删除所有变量都NA
使用 dplyr 的所有行。我知道可以使用基本 R 来完成(删除所有数据为 NA 的 R 矩阵中的行并删除 R 中数据文件的空行),但我很想知道是否有使用 dplyr 的简单方法.
例子:
上面的filter
调用做了我想要的,但在我面临的情况下它是不可行的(因为有大量的变量)。我想可以通过使用filter_
并首先使用(长)逻辑语句创建一个字符串来做到这一点,但似乎应该有一种更简单的方法。
另一种方法是使用rowwise()
and do()
:
但这看起来不太好,尽管它完成了工作。其他想法?
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)解决方案的奖励积分。
谢谢您的帮助。
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.
r - R + dplyr nest + purr - 跨数据框行内的嵌套评估模型
这将很难提出一个可重复的示例,因为目前还没有开源数据,而且我不确定我是否可以共享我拥有的数据。我会尽力解释它,如果这不起作用,我可能会花一些时间来模拟一些数据。希望这是一个简单的解决方案...
背景
我正忙着为我工作的领域(https://github.com/mathesong/kinfitr)创建一个用于动力学建模的 R 包。我正在尽我所能让一切都适合 tidyverse 工具。但是,有一个特定的用例,我不知道该怎么做,因为它涉及以不同的结构从几种不同的格式中提取数据,然后在模型中将它们拉到一起。
在页面上的 README 中,我提供了参考区域模型的解决方案,其中所有输入的长度相同,我可以使用以下工作流程:
问题
但是,对于动脉模型,输入参数如下:
脑动力学数据:时间、值、权重 - 每个向量的长度相同,在本例中为 38
血液动力学数据:血液输入 - 4096 行 x 4 列的数据框。为了方便起见,所有模型都将其作为数据帧读取,其中所有信息都已插入。
每个模型都需要所有三个向量的输入,以及血液输入数据框。
我目前将所有数据存储在一个列表中,每个测量都有一个元素。列表的每个元素都包含 1. 一个包含大脑动力学数据(大脑的每个区域,比如说 3 个区域)以及时间和权重的数据框,以及 2. 一个包含血液输入数据的数据框。因此我创建了我的最终数据框
这给我留下了以下内容
其中每个大脑数据包含以下内容:
从这一点来看,我无法弄清楚如何为每一行拟合模型。
这是我尝试过的:
我确信有一种方法可以使用地图功能来做到这一点,但我不太清楚如何。
我真的很感激任何关于我如何能够做到这一点的建议。提前感谢任何人!
r - 如何在 dplyr 中用不相等的列(反向 toString)分隔
我正在处理调查数据,试图在单个列中进行多个响应。问题是可能有 1-5 个答案,用逗号分隔。
我该如何转这个:
进入这个:
任何争论的帮助表示赞赏!
r - 给定列的最小值,在其他列中找到最小值(dplyr)
假设我们在 R 中有以下数据集:
我想制作下表:
在此表中,数据按“类型”汇总。列“MinValue1”是特定类型的最小值,列“MinValue2”是“Value2”的最小值,给定列“Value1”的最小值。列平均值*是所有观察值的一般平均值。
一种方法是实现对每种类型进行迭代并进行数学运算的循环。但是,我正在寻找一种更好/简单/漂亮的方式来执行此类操作。
我玩过“tidyverse”中的工具:
请注意,我们这里没有“MinValue2”列。另请注意,“summarise(..., MinValue2 = min(Value2), ...)”不起作用,因为此解决方案采用一种类型的所有观察值中的最小值。
我们可以玩“切片”,然后合并结果:
但请注意,“切片”工具在这里对我们没有帮助:“类型 A,Value1 5”应该具有“Value2”== 3,而不是切片返回时的 == 4。
那么,你们有没有一种优雅的方式来实现我所寻求的结果?谢谢!
r - R:基于分类变量*列表*创建虚拟变量
我有一个数据框,其中包含一个包含字符串列表的分类变量,长度可变(这很重要,因为否则这个问题将与this或this重复),例如:
所需的形式是在 中任何地方看到的每个唯一字符串的虚拟变量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) 方法非常有效:
所以这是我将标记为接受的方法。