2013-07-19 24 views
2

創建多個列的最低值,新列我有這樣一個data.frame:在data.frame

data <- data.frame(A=c(1,3,5),B=c(4,3,6),C=c(2,2,8),D=c(3,3,4)) 

    A B C D 
    1 4 2 3 
    3 3 2 3 
    5 6 8 4 

現在我想創造新的變量「E」,這是列的最低值A,B和C這樣的data.frame現在看起來是這樣的:

A B C D E 
1 4 2 3 1 
3 3 2 3 2 
5 6 8 4 5 

我可以用一個循環做到這一點:

for (i in 1:nrow(data)) { 
    data$E[i] <- min(data[i,c("A","B","C")]) 
} 

但我wonde響這是否可以做不同(更有效)?

非常感謝!

回答

4

這裏有 與apply做的一些方法,(應用min功能,每行) 或pmin(平行min)。

pmin(data[,1], data[,2], data[,3]) 
# [1] 1 2 5 
do.call(pmin, data[,1:3]) 
# [1] 1 2 5 
apply(data[,1:3], 1, min) 
# [1] 1 2 5 
+0

謝謝,所有的工作都適合我! – Rob