-1

我想创建一个长度为 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 中的大多数基本功能。

4

2 回答 2

2

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

所以:

E <- 1.655
values <- E*0:(nr-1)
于 2013-09-06T16:59:42.853 回答
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
于 2013-09-06T16:58:55.437 回答