相关疑难解决方法(0)

使用%>%替换函数,如colnames()< -

如何使用管道操作符管道替换功能colnames()<-

这是我正在尝试做的事情:

library(dplyr)
averages_df <- 
   group_by(mtcars, cyl) %>%
   summarise(mean(disp), mean(hp))
colnames(averages_df) <- c("cyl", "disp_mean", "hp_mean")
averages_df

# Source: local data frame [3 x 3]
# 
#   cyl disp_mean   hp_mean
# 1   4  105.1364  82.63636
# 2   6  183.3143 122.28571
# 3   8  353.1000 209.21429
Run Code Online (Sandbox Code Playgroud)

但理想情况下它会是这样的:

averages_df <- 
  group_by(mtcars, cyl) %>%
  summarise(mean(disp), mean(hp)) %>%
  add_colnames(c("cyl", "disp_mean", "hp_mean"))
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有每次编写专业功能的情况下这样做?

这里的答案是一个开始,但不完全是我的问题:在dplyr中链接算术运算符

r dplyr magrittr

50
推荐指数
3
解决办法
3万
查看次数

如何设置使用管道%>%运算符传递的数据框的行名?

我有一个数据框,我正在dcast使用该reshape2包,我想删除第一列,让它成为数据框的行名称.

原始数据帧,之前dcast:

> corner(df)

ID_full      gene cpm
1  S36-A1   DDX11L1   0
2  S36-A1    WASH7P   0
3  S36-A1 MIR1302-2   0
4  S36-A1   FAM138A   0
5  S36-A1     OR4F5   0
Run Code Online (Sandbox Code Playgroud)

pivot dcast表的功能:

 library(reshape2)

 pivot <- function(x){
             castTable <- x %>% dcast(ID_full ~ gene, value.var="cpm")
             }
Run Code Online (Sandbox Code Playgroud)

之后dcast,包裹在我的pivot功能中:

> corner(df)

ID_full 1060P11.3 A1BG A1BG-AS1 A1CF
1  S36-A1         0    0        0    0
2 S36-A10         0    0        0    0
3 S36-A11         0    0        0    0
4 S36-A12 …
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr magrittr

15
推荐指数
3
解决办法
8700
查看次数

R 的新原生管道 `|&gt;` 和 magrittr 管道 `%&gt;%` 有什么区别?

在 R 4.1 中引入了一个本地管道运算符,它比以前的实现“更加精简”。我已经注意到 native|>和 magrittr pipe之间的一个区别%>%,即2 %>% sqrt可以工作但2 |> sqrt不能,并且必须写为2 |> sqrt(). 使用新的管道运算符时是否有更多差异和陷阱需要注意?

r pipe tidyverse

12
推荐指数
5
解决办法
671
查看次数

标签 统计

r ×3

dplyr ×2

magrittr ×2

dataframe ×1

pipe ×1

tidyverse ×1