私ができるデータフレームからいくつかの列を選択するには
require(dplyr)
require(magrittr)
df <- data.frame(col1=c(1, 2, 3), col2=letters[1:3], col3=LETTERS[4:6])
df %>%
select(col1, col2)
次のような関数を書きたい
f <- function(data, firstCol, secondCol){
data %>%
select(substitute(firstCol), substitute(secondCol))
}
しかし、実行f(df, col1, col2)
するとエラーが発生します
Error in select_vars(names(.data), ..., env = parent.frame()) :
(list) object cannot be coerced to type 'double'
Called from: (function ()
{
.rs.breakOnError(TRUE)
})()
編集- 少し些細な例:
やりたかったとします。
mtcars %>%
select(cyl, hp) %>%
unique %>%
group_by(cyl) %>%
summarise(avgHP = mean(hp))
ただし、データセットと変数名が異なります。mtcars
コードを再利用して、、、cyl
およびを置き換えることができhp
ます。しかし、私はむしろそれをすべて関数にラップしたいと思います