変数内の変数numbers
のビンを、関数内にname
として作成したいとします。しかし、関数内でパラメータとして提供されたカテゴリ名を使用することに関連して、私は困難を抱えています。おそらく、data.tableのアプローチが良いでしょう。データフレーム内のグループごとのカスタムビン - R関数
set.seed(10)
b<-(rnorm(10, sd=1,mean=10))
y<-runif(3)
pr<-y/sum(y)
names<-unlist(lapply(mapply(rep, LETTERS[1:3], 1:3), function (x) paste0(x, collapse = "")))
x <- sample(names, 10, replace=TRUE, prob=pr)
df<-data.frame(name=x,numbers=b)
df
#working without bin limits per category (not desired)
#and using "numbers" in cut (not desired)
binfunction1 <- function(df, colgroup1, varcount,binsize) {
new<-df %>%
group_by_(colgroup1) %>%
mutate(bin = cut(numbers, breaks <- c(seq(7, 15, by = binsize)), # limits by colgroup not implemented
labels = 1:(length(breaks)-1)))
return(new)
}
binfunction1(df,"name","numbers",0.5)
name numbers bin
<fctr> <dbl> <fctr>
1 BB 10.018746 7
2 A 9.815747 6
3 CCC 8.628669 4
4 CCC 9.400832 5
5 BB 10.294545 7
6 CCC 10.389794 7
7 A 8.791924 4
8 A 9.636324 6
9 A 8.373327 3
10 A 9.743522 6
「colgroup」をdplyrishの方法で渡すと、rlangパッケージを見てみることになります(あるいは、おそらくdplyrを放棄してベースRを再訪する)。 'group_by_'は廃止予定/置き換えられました。 – Frank