根据R中的公式构建一列值

时间:2013-09-06 16:53:33

标签: r

我想创建一个长度为nr的列(来自单独数据帧的nrow),填充基于E和整数f逐渐增加的值。对于第一行,我想要0(E * 0),下一个应该是1.655(E * 1),接下来是3.311(E * 2),一直到行数等于nr。 我能够想到描述我想要做的事情的最好方法借鉴了我编写计算器的经验:

(nr和E是先前计算的值)

f <- 0
Lbl A
(new value to go into a new row in the same column) <- E*f
If f<nr
f <- f+1
Goto A
Else
Break
##pair this column with another column named "G" in a new data frame
##save a csv file of this new data frame

这个想法是,如果整数f变为与nr相同的值,则循环将中断。这似乎是一个很容易执行的想法,但我仍然不知道R中的大多数基本功能。

2 个答案:

答案 0 :(得分:2)

使用R时,尝试对操作进行矢量化,而不是使用循环(在R中通常较慢)。

所以:

E <- 1.655
values <- E*0:(nr-1)

答案 1 :(得分:1)

尝试:

E*seq(0,nr,1)

如果nr=10

> 1.655*seq(0,nr-1,1)
 [1]  0.000  1.655  3.310  4.965  6.620  8.275  9.930 11.585 13.240 14.895