如何在数据帧列上进行标量乘法

时间:2015-01-27 22:54:29

标签: r dataframe

我确定这个人坐在我面前但是我看不到它。我有一个数据框,“a”,这样:

>a
         Chars    Numbers
This      A        15
That      B        22
Other     C        18

我只想将Numbers列乘以标量,比如b< - 10,并保持数据框的其他部分不变。 (我会在结果的Numbers列中得到150,220,180,但是相同的行/列标题和Chars列。)

什么不起作用是* b,尝试使用apply或$ Numbers * b。

2 个答案:

答案 0 :(得分:5)

以下是一些选项:

  • a$Numbers <- a$Numbers * b
  • transform(a, Numbers=Numbers * b)
  • within(a, Numbers <- Numbers * 10

在所有情况下,您都需要修改数据框。第一种方法是最直接的,但另外两种做类似的事情。对于第二个和第三个,您需要保存结果,以便在其他地方重复使用(例如a <- transform(a, ...))。

答案 1 :(得分:4)

尝试以下方法:

a$Numbers <- a$Numbers * b

为了解释发生了什么,让我们使用您示例中的数字:

matrix

上面的代码允许您在Numbers列上使用标量乘法:

scalar multiplication

然后您将分配回Numbers中的a列:

scaled column