首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何停止在dplyr中使用rowwise?

如何停止在dplyr中使用rowwise?
EN

Stack Overflow用户
提问于 2015-04-21 11:30:27
回答 3查看 22.2K关注 0票数 62

因此,如果希望在dplyr中逐行应用操作,可以使用rowwise函数,例如:Applying a function to every row of a table using dplyr?

有没有一个unrowwise函数可以用来停止逐行操作?目前看来,在rowwise删除行操作之后添加group_by,例如

代码语言:javascript
运行
复制
data.frame(a=1:4) %>% rowwise() %>% group_by(a)
# ...
# Warning message:
# Grouping rowwise data frame strips rowwise nature 

这是否意味着如果您希望显式删除rowwise,则应该使用group_by(1)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-23 07:00:15

正如在评论和其他答案中所发现的,正确的方法是使用ungroup()

操作rowwise(df)df的一个类设置为rowwise_df。我们可以通过检查代码here来查看该类上的方法,该代码提供了以下ungroup方法:

代码语言:javascript
运行
复制
#' @export
ungroup.rowwise_df <- function(x) {
  class(x) <- c( "tbl_df", "data.frame")
  x
}

所以我们可以看到,ungroup并没有严格地删除分组结构,而只是删除了从rowwise函数中添加的rowwise_df类。

票数 79
EN

Stack Overflow用户

发布于 2020-06-04 19:45:37

只需使用ungroup()即可

以下代码会生成一个警告:

代码语言:javascript
运行
复制
data.frame(a=1:4) %>% rowwise() %>% 
  group_by(a)
#Warning message:
#Grouping rowwise data frame strips rowwise nature

这不会产生警告:

代码语言:javascript
运行
复制
data.frame(a=1:4) %>% rowwise() %>% 
  ungroup() %>% 
  group_by(a)
票数 8
EN

Stack Overflow用户

发布于 2019-07-18 03:23:28

您可以使用as.data.frame(),如下所示

代码语言:javascript
运行
复制
> data.frame(a=1:4) %>% rowwise() %>% group_by(a)
# A tibble: 4 x 1
# Groups:   a [4]
      a
* <int>
1     1
2     2
3     3
4     4
Warning message:
Grouping rowwise data frame strips rowwise nature 

> data.frame(a=1:4) %>% rowwise() %>% as.data.frame() %>% group_by(a)
# A tibble: 4 x 1
# Groups:   a [4]
      a
* <int>
1     1
2     2
3     3
4     4
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29762393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档