2015-08-28 125 views

回答

5

實際上,你可以很直接相減,但你需要提供第一行作爲list

mydf - as.list(mydf[1, ]) 
# C1 C2 C3 
# 1 0 0 0 
# 2 1 2 -5 
# 3 4 -1 2 
# 4 6 -3 -1 

## OR 
mydf - c(mydf[1, ]) 
2

我們可以複製的第一行創建長度相同,然後做差價。

df1-df1[1,][col(df1)] 
# C1 C2 C3 
#1 0 0 0 
#2 1 2 -5 
#3 4 -1 2 
#4 6 -3 -1 

或者另一種選擇是調換(t)數據集,得到的差異,又轉了,這可能是低效率的

t(t(df1)- unlist(df1[1,])) 
#  C1 C2 C3 
#[1,] 0 0 0 
#[2,] 1 2 -5 
#[3,] 4 -1 2 
#[4,] 6 -3 -1 
+1

這裏是一個+1,但這實際上是殺毒作用,據我所知。只需將第一行作爲「列表」替代...... – A5C1D2H2I1M1N2O1R2T1

+0

@AnandaMahto你是對的。我沒有想到'list'方法。 – akrun