首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >引用R中的其他单元格,而不使用for循环

引用R中的其他单元格,而不使用for循环
EN

Stack Overflow用户
提问于 2013-10-28 08:34:20
回答 2查看 61关注 0票数 0

我是R的新手,有一件事我被一次又一次地告诉我,那就是真的不需要for循环。我在apply上取得了一些成功,但不知道如何在这个实例中使用它。

以下是我正在处理的数据:

代码语言:javascript
运行
复制
Bid  Ask     Exp Strike Price   V6
51 4.95 5.15 NOV1 13    335 5.050 3.08
52 3.40 3.50 NOV1 13    340 3.450   NA
53 2.28 2.42 NOV1 13    345 2.350   NA
54 1.51 1.57 NOV1 13    350 1.540   NA
55 0.99 1.07 NOV1 13    355 1.030   NA
56 0.66 0.71 NOV1 13    360 0.685   NA
57 0.46 0.51 NOV1 13    365 0.485   NA
58 0.33 0.37 NOV1 13    370 0.350   NA
59 0.25 0.28 NOV1 13    375 0.265   NA
60 0.18 0.24 NOV1 13    380 0.210   NA
61 0.11 0.20 NOV1 13    385 0.155   NA
62 0.05 0.17 NOV1 13    390 0.110   NA
63 0.05 0.16 NOV1 13    395 0.105   NA
64 0.07 0.13 NOV1 13    400 0.100   NA

在第6列(称为V6)中,我希望这些值是当前行下面3个单元格中价格列中的值的两倍。例如,第6列中的第1行是3.08,即第5列第4行中的2*1.54。我希望对第6行中的每个单元格执行此操作,直到第12行中的所有单元格都用完。NA在此行之后的第6列中没有问题。

下面是我是如何做到这一点的:

代码语言:javascript
运行
复制
for (i in 1:11){ 
data[i,6] <- 2*data[i+3,5]}

有没有更快/更容易/更合适的方法来做到这一点?

这是我想要的最终数据。

代码语言:javascript
运行
复制
    Bid  Ask     Exp Strike Price   V6
51 4.95 5.15 NOV1 13    335 5.050 3.08
52 3.40 3.50 NOV1 13    340 3.450 2.06
53 2.28 2.42 NOV1 13    345 2.350 1.37
54 1.51 1.57 NOV1 13    350 1.540 0.97
55 0.99 1.07 NOV1 13    355 1.030 0.70
56 0.66 0.71 NOV1 13    360 0.685 0.53
57 0.46 0.51 NOV1 13    365 0.485 0.42
58 0.33 0.37 NOV1 13    370 0.350 0.31
59 0.25 0.28 NOV1 13    375 0.265 0.22
60 0.18 0.24 NOV1 13    380 0.210 0.21
61 0.11 0.20 NOV1 13    385 0.155 0.20
62 0.05 0.17 NOV1 13    390 0.110   NA
63 0.05 0.16 NOV1 13    395 0.105   NA
64 0.07 0.13 NOV1 13    400 0.100   NA

谢谢。

EN

Stack Overflow用户

发布于 2013-10-28 08:41:45

使用mydata$V6 <- 2 * c(mydata$Price[-(1:3)], rep(NA, 3))

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19625473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档