他の列名で列があります。私は各列名の値を取得したい。文字列を使用してdplyr(または基数R)の1行あたりの列を選択します
# three columns with values and one "key" column
library(dplyr)
data = data.frame(
x = runif(10),
y = runif(10),
z = runif(10),
key = sample(c('x', 'y', 'z'), 10, replace=TRUE)
)
# now get the value named in 'key'
data = data %>% mutate(value = VALUE_AT_COLUMN(key))
私は答えはのmutateの怠惰なevalのバージョンとは何かを持っているかなり確信しているが、私は私の人生のためにそれを把握することはできません。
ご協力いただければ幸いです。
また、 'data [c(" x "、" y "、" z ")] [cbind(seq_len(nrow(data))、match(data $ key、names(data))) ] 'を使用して、すべての行でグループ化することを避けます(中間変換のコストはおそらく低くなります)。 –
@alexis_laz私は、すべての列を列挙する必要がない、より拡張性のあるアプローチを希望します。 – sharoz
列の順序に応じて、プログラム的に必要な列を抽出する方法はたくさんあるはずです。 'data [1:3]'、 'data [unique(data $ key)]'、 'data [%names]'、 'data'など –