0
私は何百万行もこれを実行する必要があるので、効率的な方法で以下のループを実行したいと思います。 サンプルデータがRの下のコードをループする高速かつ効率的な方法
a <- data.frame(x1=rep(c('a','b','c','d'),5),
x2=c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5),
value1=c(rep(201,4),rep(202,4),rep(203,4),rep(204,4),rep(205,4)),
y1=c(rep('a',4),rep('b',4),rep('c',4),rep('d',4),rep('e',4)),
y2=c(1,2,3,4,2,3,4,5,3,4,5,6,4,5,6,7,5,6,7,8),
value2=seq(101,120), stringsAsFactors = FALSE)
私は2つの列の間で同様の値を比較して、違いを見つけるために、以下に書きました。それぞれについて、
for (i in 1:length(a$x1)){
for (j in 1:length(a$x1)){
if(a$y1[i] == a$x1[j] & a$y2[i] == a$x2[j]){
a$diff[i] <- a$value1[j] - a$value2[i]
break
}
}
}
私が期待される出力がどうあるべきかを理解いくつかの問題を抱えているし、そしてI forループに問題があると思われます。あなたの質問を編集して、あなたの例で出力 'diff'列がどのように見えるかを表示できますか? –
あなたが指定した例は正しいですか?例えば、i = 15の場合 – Wen
今編集したbreak文がありませんでした。指摘していただきありがとうございます。 – Lufy