问题标签 [purrr]
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 - 变异多个/连续列(使用 dplyr 或 base R)
我正在尝试创建代表重复测量的变量“波”。具体来说,我正在尝试创建表示变量 1 - 10、11 - 20 ... 91-100 的平均值的连续变量。请注意,“...”表示第 3 波到第 9 波的变量,因为避免输入这些是我的目标!
这是一个示例数据框,df
有 10 行和 100 列:
dplyr::mutate
一旦输入了所有变量,我就使用了which 工作,但是时间密集且容易出错。我无法找到一种方法来这样做,而无需手动输入列的名称,正如我在下面开始做的那样(注意“...”代表第 3 波到第 9 波):
您可以 mutate
使用“dplyr”进行多个/连续列吗?也欢迎其他方法。
r - 仅使用 purrr 包中的函数从嵌套列表中提取元素
如何仅使用 purrr 包从嵌套列表中提取元素?在这种情况下,我想在拆分 data.frame 后得到一个截距向量。我已经使用 lapply() 完成了我需要的工作,但我只想使用函数 purrr 包。
我已经尝试过 map() 和 at_depth() 但似乎没有什么对我有用。
r - 如何使用管道和 purrr 获取列表名称和切片名称
我想知道在使用带有 purrr 的管道操作时如何获取列表名称或组名称作为标志。例如:我想使用每个列表名称的动态参数传递给 ggsave 函数。
slicename(.) 应该类似于 unique(.[["id"]]),但在使用 slice_rows 时它不起作用。
r - 使用 purrr::cross_n 进行笛卡尔积过滤
我正在尝试一些purrr
习惯用法 - 特别是通过一个 data.frame 循环(或应用,如果您愿意)函数并与另一个 data.frame 中的所有其他行进行比较的函数......并根据该比较函数过滤笛卡尔积..
所以一个简单的示例函数是:
我正在寻找的结果(现在)应该是一个 2 x 4 data.framedf3
像
然后我天真地尝试purrr::cross_n
像这样使用该功能......
当然这不起作用,它是通过 3 个输入列(48 个组合)的笛卡尔积进行搜索。我希望搜索df2$start2
vs [df1$start
和df1$end
] 的组合(12 种组合)。
所以......有没有办法在purrr
框架内做到这一点?
不能完全理解cross_n
orcross2
和 errr .. 我不完全理解文档cross_d
r - 使用 magrittr、dplyr 和 purrr 有条件地将函数应用于 R 中的分组数据帧
我想使用 magrittr、dplyr 和可能的 purrr 的简洁性将一个大型数据帧(具有许多不同类型的变量)拆分为一个变量x
,然后有条件地将不同的函数x
应用于每个组,并将组内的行应用于第二个变量y
。
以数据框为例df <- data.frame(a, b, x, c, d, y)
,其中x
因子 ( foo
, bar
)y
是数字。我可以用一个无管道的工作流来做我不雅地描述的事情,因此:
我想用 dplyr 重写它并将它添加到一个长管道中,df
但是我所有的组合尝试mutate
都失败了;尝试将 purrr 与匿名函数合并,以及.sapply
do
by_slice
dmap
非常感谢您的建议。
r - tidyr 嵌套表上的 mutate_each 给出“未知输入”
我正在尝试mutate_each
对purr::map
由tidyr::nest
.
以下是我正在尝试执行的操作以及由此产生的错误的示例:
给出:
Error: Unknown inputs
是什么导致了这个问题?有解决办法吗?我可以使用apply
而不是,mutate_each
但这会删除行名。
编辑:从第一个回复看来,目的还不清楚。所以也许我正试图以错误的方式做某事。让我解释。
如果你这样做:
你有:
我想要的是为每一列运行一个函数;但为每个嵌套表单独完成。所以我想在每张桌子上运行下面的等价物:
给予:
r - (...) 不是长度为 1 的原子向量错误
我正在尝试抓取 IMDB 数据,但对于一个变量,我不断收到错误消息。
错误:结果 28 不是长度为 1 的原子向量
当我使用 try (如代码中所示)执行此操作时,我得到
[1] “错误:无法将对象转换为数据框\n” attr(,"class") [1] "try-error" attr(,"condition") <Rcpp::exception: 无法将对象转换为数据框架>
如果有人能告诉我出了什么问题/为什么尝试不只是跳过该结果,那就太好了?
r - 通过数值变量 lm() 过滤数据帧,并提取斜率
我想应用不同级别的数字过滤器(例如seq(10,80, by=2)
),然后将它们缝合到单个数据框中,以便与另一个变量进行比较。我目前可以这样做,但我希望有更好的方法,因为我只是复制和粘贴代码,然后将所有内容重新加入。我想要的最终结果就是我所拥有的,每个过滤步骤都作为自己的列,并从 lm() 中提取斜率参数。
我目前在 hadleyverse 中使用 NSE 管道并想留在那里,但很高兴看到 base、data.table 或其他实现。我一直在看 purrr,但我不确定如何将过滤器映射到内联变量。
r - 使用 tidyr 和 purrr 在 R 中应用函数
我以前问过这个问题并使用data.table
. 我现在正尝试对tidyr
and做同样的事情purrr
。
应用分段函数:
segmented
包采用线性模型并应用分段线性回归。Vehicle.ID2
我的数据集中有多个对象 ( ) pp
。我创建了一个应用该函数的segmented
函数:
变量svel
、Time
和dssvel
在数据集中可用。
使用 tidyr 和 purrr 包:
现在,为了在多个Vehicle.ID2
s 上应用上述功能,我做了以下操作:
你可以看到上面的错误。我已经尝试调整该功能,但它仍然给出错误。我怎样才能解决这个问题?
样本数据
我只包含 2 个数据框,Vehicle.ID2
但它仍然很大。我不确定如何进一步缩短它以使其成为最小的示例: