我試圖根據參考data.frame的值創建一個採用不同值的data.frame。我只知道如何用「for循環」來做到這一點,但建議避免R中的循環...並且我的實際數據有〜500,000行x〜200列。在沒有for循環的情況下在另一個df上創建data.frame條件
a <- as.data.frame(matrix(rbinom(10,1,0.5),5,2,dimnames=list(c(1:5),c("a","b"))))
b <- data.frame(v1=c(2,10,12,5,11,3,4,14,2,13),v2=c("a","b","b","a","b","a","a","b","a","b"))
c <- as.data.frame(matrix(0,5,2))
for (i in 1:5){
for(j in 1:2){
if(a[i,j]==1){
c[i,j] <- mean(b$v1[b$v2==colnames(a)[j]])
} else {
c[i,j]= mean(b$v1)
}}}
c
我基於data.frame「a」的每個單元格中的值和相應的列名稱創建data.frame「c」。 有沒有另一種方法來做到這一點?索引?使用data.table?也許適用功能? 任何和所有的幫助,非常感謝!
我嘗試過,但結果與'c'不一樣。任何想法 ? – dickoa
@dickoa謝謝,修復 – eddi
@dickoa我有一種感覺,有一個更簡單的方法乘以這兩個,比上述 – eddi