我确定这个人坐在我面前但是我看不到它。我有一个数据框,“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。
答案 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
为了解释发生了什么,让我们使用您示例中的数字:
上面的代码允许您在Numbers
列上使用标量乘法:
然后您将分配回Numbers
中的a
列: