2016-07-25 19 views
-1

类似于数据表我寻找相似的功能/包中的R到数据表中的MS Excel的(假设分析计算)。目前我广泛使用Excel中的数据表来对数千行输入数据进行多次计算。我已附加的计算的快照在Excel数据表被完成:否则中的R多个计算在Excel

enter image description here

换句话说,所有我的公式/计算是在电子表格的单个标签,并在另一个选项卡(所有的输入数据数千行)。我使用数据表操作来计算此数据集的每一行的结果。这使我的电子表格只用单个选项卡就可以整理所有计算。现在我正在使用R来实现相同的功能。对此深表感谢。

+0

请阅读关于[如何提出一个好问题]的信息(http://stackoverflow.com/help/how-to-ask)以及如何给出一个[r eproducible例子](http://stackoverflow.com/questions/5963269)。这会让其他人更容易帮助你。 – zx8754

+0

@ zx8754我现在又增加了从Excel数据表中的计算的图像,使我的问题更加清晰。试图把我的查询。 – Ravikk

+1

假设你的输入数据框被命名为* DF1 *,我们可以计算出* CALC1 *为:'$ DF1 CALC1 < - DF1 $ X * $ DF1 Y',对于* CALC2 *:'$ DF1 CALC2 < - DF1 $ Z/DF1 $ Y',* Calc3 *:'df1 $ Calc3 < - df1 $ Z + df1 $ X'。 – zx8754

回答

1

首先,让我们把您的问题重复性:

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)