我有這個數據幀第n列:填寫一個數據幀
df <- data.frame(A=c("a","b","c","d","e","f","g","h","i"),
B=c("1","1","1","2","2","2","3","3","3"),
C=c(0.1,0.2,0.4,0.1,0.5,0.7,0.1,0.2,0.5))
> df
A B C
1 a 1 0.1
2 b 1 0.2
3 c 1 0.4
4 d 2 0.1
5 e 2 0.5
6 f 2 0.7
7 g 3 0.1
8 h 3 0.2
9 i 3 0.5
我想補充1000還列,並填寫此欄與所產生的價值:
transform(df, D=ave(C, B, FUN=function(b) sample(b, replace=TRUE)))
我已經試着用for
循環,但它不工作:
for (i in 4:1000){
df[, 4:1000] <- NA
df[,i] = transform(df, D=ave(C, B, FUN=function(b) sample(b, replace=TRUE)))
}
謝謝@ Ferdinand.kraft,我仍然不完全理解你的代碼,只是爲了確保sample2採用的'd $ C'值與那些具有相同'df $ B'值的值相對應? – user2380782
非常感謝@ Ferdinand.kraft的解釋。事實上,有一些組只有一個值,所以你的sample2函數解決了這個問題。非常感謝!!!! – user2380782