Я пытаюсь использовать dplyr для применения функции к подмножеству столбцов. Однако, в отличие от кода, приведенного ниже, я пытаюсь реализовать это, сохраняя все столбцы в кадре данных. В настоящее время результирующий кадр данных сохраняет только выбранные столбцы. Я могу использовать конструкцию remove-and-cbind, чтобы объединить эти столбцы обратно в исходный фреймворк данных, но мне было интересно, есть ли способ сделать это прямо в dplyr? Я попытался переместить функцию select внутри функции mutate, но пока не смог выполнить эту работу.dplyr на подмножестве столбцов, сохраняя остальную часть data.frame
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
Может быть, просто 'ирис%>% mutate_each (фаны (Replace15), starts_with ("Лепесток"))'? – aosmith
Вы также можете определить свою функцию с точки зрения встроенной функции 'replace'. 'ifelse' может быть медленным, если это вас беспокоит. http://stackoverflow.com/q/16275149/1191259 – Frank