首先,讓我們把您的問題重複性:
df <- data.frame(case = 1:12,
x = seq(10, 120, by = 10),
y = seq(0.5, 1.6, by = 0.1),
z = seq(100, 210, by = 10))
head(df)
# case x y z
# 1 1 10 0.5 100
# 2 2 20 0.6 110
# 3 3 30 0.7 120
# 4 4 40 0.8 130
# 5 5 50 0.9 140
# 6 6 60 1.0 150
然後,我們可以這樣解決了傳統方式:
df$calc1 <- df$x * df$y
df$calc2 <- df$z/df$y
df$calc3 <- df$z + df$x
head(df)
# case x y z calc1 calc2 calc3
# 1 1 10 0.5 100 5 200.0000 110
# 2 2 20 0.6 110 12 183.3333 130
# 3 3 30 0.7 120 21 171.4286 150
# 4 4 40 0.8 130 32 162.5000 170
# 5 5 50 0.9 140 45 155.5556 190
# 6 6 60 1.0 150 60 150.0000 210
或者,你可以使用transform
:
transform(df, calc1 = x/y, calc2 = z/y, calc3 = z + x)
請閱讀關於[如何提出一個好問題]的信息(http://stackoverflow.com/help/how-to-ask)以及如何給出一個[r eproducible例子](http://stackoverflow.com/questions/5963269)。這會讓其他人更容易幫助你。 – zx8754
@ zx8754我現在又增加了從Excel數據表中的計算的圖像,使我的問題更加清晰。試圖把我的查詢。 – Ravikk
假設你的輸入數據框被命名爲* DF1 *,我們可以計算出* CALC1 *爲:'$ DF1 CALC1 < - DF1 $ X * $ DF1 Y',對於* CALC2 *:'$ DF1 CALC2 < - DF1 $ Z/DF1 $ Y',* Calc3 *:'df1 $ Calc3 < - df1 $ Z + df1 $ X'。 – zx8754