相关疑难解决方法(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万
查看次数

使用第一行数据作为r中的列名

这应该是一个容易的问题,但我遇到了麻烦.我有一个脏的数据集,我无法阅读它header=T.在我阅读并清理它之后,我想使用现在的第一行数据作为列名.我在stackoverflow上尝试了多种方法但没有成功.可能是什么问题呢?t1清理后,数据集应如下所示:

      V1    V2  V3  V4  V5
1   col1    col2    col3    col4
2   row1    2   4   5   56
3   row2    74  74  3   534
4   row3    865 768 8   7
5   row4    68  86  65  87
Run Code Online (Sandbox Code Playgroud)

我试过了:colnames(t1)=t1[1,].什么都没发生.

我试过:names(t1)=ti[1,],什么都没发生.

我试过了: lapply(t1, function(x) {names(x)<-x[1,]; x})

它返回一条错误消息:

误差在[.default(X,1,):维度的数目不正确

有人可以帮忙吗?

r names

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

标签 统计

r ×2

dplyr ×1

magrittr ×1

names ×1