写函数用于在一个数据帧中减去两列

时间:2016-02-03 13:30:23

标签: r function subtraction

我有一个包含多个列的数据框,我需要从此数据框中减去两列的值,并将结果值作为新列添加到同一数据集中。 有关如何在Rstudio中编写函数的任何想法吗?

提前致谢 远

2 个答案:

答案 0 :(得分:1)

好的,我们假设我们有一个带有两个数字列的数据框,num1和num2(可能还有其他列),可能看起来像这样:

    num1 num2
1    3   12
2    6   13
3    9   14
4   12   15
5   15   16

如果我们选择两列并从另一列中减去一列,则R会自动按元素减去它们的组件,因此尝试这是有意义的。此外,通过设置新列的值,R会自动为我们创建此列并将其添加到数据框中(感谢Vongo将其指向注释中)。

因此,如果我们要减去列' num1'从列#num;'并将其添加为另一列' num3'在我们的数据框中称为“df'”,我们可以尝试:

df$num3 <- df$num2 - df$num1

这给出了以下数据框:

    num1 num2 num3
1    3   12    9
2    6   13    7
3    9   14    5
4   12   15    3
5   15   16    1

我希望有所帮助!

注意:如果你想重现我为这个例子制作的数据框,下面两行代码应该可以解决这个问题:

df <- data.frame(3*1:5, 12:16)
names(df) <- c('num1', 'num2')

答案 1 :(得分:0)

一种简单的方法是将另一列添加到现有数据框中,并用结果填充它。参见下面的示例

DF = data.frame(num1 = runif(10, min = 1, max = 5), num2 = runif(10, min = 10, max = 15))
DF$num3 = DF$num2 - DF$num1