如何在数据框列上进行标量乘法
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
列:
我确定这个就在我面前,但我看不见。我有一个数据框“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
列: