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

How to do scalar multiply on data frame column

我确定这个就在我面前,但我看不见。我有一个数据框“a”,这样:

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

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

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

这里有一些选项:

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

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

尝试以下操作:

a$Numbers <- a$Numbers * b

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

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

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