我试图使用dplyr将函数应用于列的子集 . 但是,与下面的代码相反,我试图在保留数据框中的所有列的同时实现这一点 . 目前,生成的数据框仅保留选定的列 . 我可以使用remove-and-cbind构造将这些列合并回原始数据帧,但我想知道是否有办法在dplyr中直接执行此操作?我试图在mutate函数中移动select函数,但是还没能使这个工作 .
require(dplyr)
Replace15=function(x){ifelse(x<1.5,1,x)}
dg <- iris %>%
dplyr::select(starts_with("Petal")) %>%
mutate_each(funs(Replace15))
dg
> dg
Source: local data frame [150 x 2]
Petal.Length Petal.Width
1 1.0 1
2 1.0 1
3 1.0 1
4 1.5 1
5 1.0 1
6 1.7 1
7 1.0 1
8 1.5 1
9 1.0 1
10 1.5 1
2 回答
或者(由@aosmith发布)你可以使用
starts_with
. 看看select
,summarise_each
和mutate_each.
中可用的其他特殊功能?select
mutate_each is now deprecated,由
mutate_if
和mutate_at
取代 . 使用这些替代品,答案是