问题标签 [dplyr]

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 投票
2 回答
2462 浏览

r - 为 dplyr do 操作的列表输出分配名称

dplyrdo包中的函数通常会生成列表。有没有办法根据输入为该列表分配名称?具体来说,我传递了结果,并希望列表的名称能够指示列表元素对应的组。dogroup_by

这是我想要实现的玩具示例:

现在用do

理想情况下,名称应该是c("c","b","a").

这可能吗?为什么dplyr 会反转组的排序?请注意,在我的情况下,do操作的结果是一个lm对象。

编辑:评论要求提供现实的例子,这就是我的想法。我根据数据(虚拟代码)拟合模型:

现在我想做各种各样的事情,比如

所以我想将结果与原始数据集相关联,在这种情况下Index与系数对应的内容相关联。

编辑2:可以通过以下dlply功能实现所需的行为:

我正在寻找是否可以用 dplyr 复制这种行为,最好是用最少的干预。

0 投票
3 回答
6994 浏览

r - dplyr 没有硬编码变量名

是否可以在不硬编码变量名的情况下使用 dplyr 的 mutate 函数?例如,以下代码有效,因为我对名称 Var1 进行了硬编码:

但是,当我将变量的名称设为变量时,它不再起作用:

eval() 和 as.symbol() 函数似乎也没有帮助。

0 投票
3 回答
1396 浏览

r - How to expand a large dataframe in R

I have a dataframe

I want to expand it so that there is every combination of id and spp and have y = 0 for every combination that is not currently in the dataframe. The dataframe is currently about 100,000 rows and 15 columns. When expanded it would be about 300,000 columns (there are 17 unique values of spp in my actual dataset).

For every value of id the date is the same (e.g. when id = 2, date always = 1985-08-01). In my real dataset all the columns except spp and y can be specified by the id.

I want to end up with something like:

  • Indicate added rows

I will likely have to do this in the future with potentially much larger data frames, so a quick, efficient (time and memory) way to do this would be appreciated but any solution would satisfy me. I figure there should be ways to use the dplyr, data.table, or reshape packages but I'm not very familiar with any of them. I'm not sure if it would be easiest to expand just rows id, spp, and y, then do a left_join() or merge() to recombine date (and all the other variables in my real dataframe) based on id?

0 投票
2 回答
227 浏览

r - 基于字符串值总结数据框

我想根据字符串变量的唯一值来总结一个数据框。

lllocatie我知道用变量来做到这一点:

但我想总结一下:

table(unlist(strsplit(as.character(df1$names), ",")))例如,我可以使用或获得频率table(unlist(strsplit(as.character(df1$names), ","))[df1$mag.cat == 1]),但我无法弄清楚如何在ddply函数内部进行操作。

任何想法如何解决这个问题?新dplyr包有什么帮助吗?

0 投票
1 回答
7783 浏览

r - 使用 dplyr 创建虚拟变量

我正在尝试使用以下方法dplyr

假设您有data.frame y并且您想根据 的值创建一个新变量var1

dplyr是否可以使用'smutate和来做到这一点filter

0 投票
1 回答
320 浏览

r - dplyr:按组操作具有多个参数的函数

使用 robCompositions 包,我需要按组估算缺失值。例如,使用 iris 数据集。

这是我不知道使用哪个manip的地方......

任何想法?

谢谢。

0 投票
1 回答
131 浏览

r - 在没有循环的情况下在 R 中绑定

我可以使用循环来回答这个问题,我想不这样做(最好在 dplyr 或 plyr 中)。

我有一个数据框和一个国家列表

数据框看起来像这样

我需要将国家/地区列表分配给数据。申请规则是——一直申请同一个国家,直到数据框中两个相邻日期的差<=0。成品应该是这样的

0 投票
1 回答
141 浏览

r - 大规模使用唯一值(for loops、apply 或 plyr)

我不确定这是否可能,但如果是的话,它会让生活更有效率哦。

更广泛的 SO 社区会感兴趣的一般问题:for 循环(和 apply 等基本函数)适用于一般/一致的操作,例如将 X 添加到数据帧的每一列或每一行。我有一个想要执行的通用/一致操作,但数据框的每个元素都有唯一的值。

有没有办法比为每个分组对我的数据框进行子集化、应用具有相对于该分组的特定数字的函数然后重新组合更有效地做到这一点?我不在乎它是for 循环还是apply,但如果它使用plyr功能,则可以加分。


这是我正在处理的更具体的问题:我有以下数据。最终我想要的是一个具有日期的时间序列数据框,每一列代表一个区域与某个基准的关系。

问题:每个地区的兴趣衡量标准不同,基准也不同。这是数据:

以及我正在处理的摘要框架:

这是棘手的部分:

  • 对于东北,我只关心“ppl_per_skier”,基准是3500
  • 对于中西部,我只关心“ppl_per_bearsfan”,基准是1200
  • 对于西方,我只关心“ppl_per_dude”,基准是5000

我想出的解决这个问题的任何方法都涉及为每个度量创建子集,但是用数百个度量和不同的基准来大规模地这样做……并不理想。例如:

同样对于每个区域,其各自的衡量标准和各自的基准,然后按日期将它们重新组合在一起。最终,我想要这样的东西,其中每个地区相对于其特定基准和衡量标准的表现按日期排列(当然这是假数据):

当我对每个组都有唯一的度量和基准值时,有没有办法获得这种数据和结构而不必为每个分组做 X 个子集?

0 投票
1 回答
171 浏览

r - 将数据框的两列传递给 pwr.t.test

我正在尝试将以下内容传递给pwr.t.test

我想fail/sample作为pwr.t.test.

以下是我如何实施它无济于事:

我之前有一些运气lapply,但这只是使用单个向量(而不是数据框的两列)。

我知道这很容易与家庭ddply成员或其中一位成员一起完成apply

谢谢你。

0 投票
1 回答
11581 浏览

r - dplyr:如何在 group_by 的结果上应用 do()?

我想使用 dplyr 按一列对表进行分组,然后将函数应用于每组第二列中的一组值。

例如,在下面的代码示例中,我想返回每个人吃的所有 2 项食物组合。我无法弄清楚如何在函数中使用正确的列(食物)正确地提供do()函数。

请注意,示例代码在?do我的机器上失败