私はさまざまな長さの単語のベクトルを含むリストを持っています。私は、これらの単語ベクトルのそれぞれと他の単語ベクトルとの間の重なりに関する情報を含むデータフレームを作成したい。この計算を行うより効率的な方法をお探しください
iがjを
に等しくない場合、私は([I]%のL [J]で%をL)は、多くの単語が和と他のエントリのそれぞれにあるかチェックすること、今ループの二重を有します私の現在の方法は非効率であるように見えますが、正しい答えを示しています。これを行う最もRの方法は何ですか?
l = list()
l <- c(l,list(c("word","another","hi","words")))
l <- c(l,list(c("word","maybe","nope")))
l <- c(l,list(c("maybe","nope")))
df <- data.frame(index = 0,one = 0,two = 0)
for(i in 1:length(l)){
df <- rbind(df,data.frame(index = i,one = 0,two = 0))
for(j in 1:length(l)){
if(i == j){next}
truth_vec <- sum(l[[i]] %in% l[[j]])
if(truth_vec == 1){df[i + 1,]$one = df[i + 1,]$one + 1}
else if(truth_vec == 2){df[i + 1,]$two = df[i + 1,]$two + 1}
else{NULL}
}
}
@thelatemailあなたは答えとして – CPak
@ChiPakとして投稿する必要があります - 私は彼らが出力として何を望んでいるのかOPの最初の明確化を望んでいました。 – thelatemail
フォーマットがOPが探しているものではない場合でも、それはまだ素晴らしい答えです。 – CPak