これは私の拙い言葉遣いの前の質問の言い直しです。(それに返信してくれた人には、あなたの努力に感謝します。私の質問が明確である必要があったため、申し訳ありません。) 私は大規模なデータセットを持っており、そのサブセットは次のようになります。
a<-c(1,2,3,4,5,1)
b<-c("a","b","a","b","c","a")
c<-c("m","f","f","m","m","f")
d<-1:6
e<-data.frame(a,b,c,d)
特定の条件に基づいて 4 列目のエントリの合計が必要な場合は、次のようにすることができます。
attach(e)
total<-sum(e[which(a==3 & b=="a"),4])
detach(e)
ただし、条件の「ベクトル」(condition_vector と呼びます) があり、その最初の 4 つの要素は次のようになります。
a==3 & b == "a"
a==2
a==1 & b=="a" & c=="m"
c=="f"
条件の condition_vector を読み込んで合計の results_vector を生成する、上記の「合計」式の「一般化された」バージョンを作成したいと思います。この例では、results_vector の最初の 4 つのエントリは、概念的に次のように計算されます。
results_vector[1]<-sum(e[which(a==3 & b=="a"),4])
results_vector[2]<-sum(e[which(a==2),4])
results_vector[3]<-sum(e[which(a==1 & b=="a" & c=="m"),4])
results_vector[4]<-sum(e[which(c=="f"),4])
実際のデータ セットには 20 を超える変数があります。そのため、condition_vector の各レコードには、1 から 20 を超える条件を含めることができます (この例では 1 から 3 の条件が使用されています)。
parse(eval(text= ... アプローチ(比較的小さなデータセットで実行するには長い時間がかかります)を使用する以外に、これを達成する方法はありますか?
提供できるヘルプに事前に感謝します(また、前回ほど明確ではなかったことをお詫びします)。
スパーク