9

cols_to_selectデータフレームから選択したいいくつかの列を含む文字ベクトルがあるとしますdf

df <- tibble::data_frame(a=1:3, b=1:3, c=1:3, d=1:3, e=1:3)
cols_to_select <- c("b", "d")

また、 を使用dplyr::selectする操作の一部であるため、を使用したいとします。%>%使用selectするとコードが読みやすくなります。

これを実現する方法はいくつかあるようですが、いくつかの方法は他の方法よりも堅牢です。「正しい」バージョンとその理由を教えてください。それとも、別のより良い方法がありますか?

dplyr::select(df, cols_to_select) #Fails if 'cols_to_select' happens to be the name of a column in df 
dplyr::select(df, !!cols_to_select) # i.e. using UQ()
dplyr::select(df, !!!cols_to_select) # i.e. using UQS()

cols_to_select_syms <- rlang::syms(c("b", "d"))  #See [here](https://stackoverflow.com/questions/44656993/how-to-pass-a-named-vector-to-dplyrselect-using-quosures/44657171#44657171)
dplyr::select(df, !!!cols_to_select_syms)

psこれは、単純に使用してベースRで実現できることを認識していますdf[,cols_to_select]

4

1 に答える 1