r - 循环数据时计算错误
问题描述
我有一个包含 3 个变量的数据框,我正在尝试计算在公司上市的第一年可以用 100 英镑购买多少个字符
数据看起来像
YEAR_END COMPANY_NUMBER CLOSE_SHARE_PRICE NUMBER_OF_SHARES 31/12/2002 22705 7.5 0
31/12/2003 22705 6.55 0 31/12/2004 22705 6.55 0 31/12/2005 22705 NA 0 31/12/2006 22705 NA 0 31/12/2007 22705 NA 0 31/12/2008 1/3 2270 NA 12/2004 11356069 1.09 0 31/12/2002 SC192761 2.42 0 31/12/2003 SC192761 0.9 0 31/12/2004 SC192761 NA 0 31/12/2005 SC192761 NA 36 SC1927/12/20 2007 SC192761 NA 0 31/12/2002 10395804 1.04 0 31/12/2003 10395804 1.04 0 2004 年 12 月 31 日 10395804 不适用 0 2003 年 12 月 31 日 5625107 0.02 0 2004 年 12 月 31 日 5625107 0 0
我写的代码是:
for (i in 1:(nrow(PLC_Return)-1))
if (i == 1)
{
NUMBER_OF_SHARES[i] = 100/is.na(CLOSE_SHARE_PRICE[i])
} else if
(is.na(PLC_Return[i, 1]) == is.na(PLC_Return[i + 1, 1])
{
NUMBER_OF_SHARES[i]=0
} else
{
NUMBER_OF_SHARES[i] = 100/is.na(CLOSE_SHARE_PRICE[i])
}
基本上是公司第一年计算购买的股份。然后在发送年份我不需要计算。
for (i in 1:(nrow(PLC_Return)-1))
if (i == 1)
{
NUMBER_OF_SHARES[i] = 100/is.na(CLOSE_SHARE_PRICE[i])
} else if
(is.na(PLC_Return[i, 1]) == is.na(PLC_Return[i + 1, 1])
{
NUMBER_OF_SHARES[i]=0
} else
{
NUMBER_OF_SHARES[i] = 100/is.na(CLOSE_SHARE_PRICE[i])
}
我收到一个错误错误:“}”中的意外'}'
{
-
NUMBER_OF_SHARES[i] = 100/is.na(CLOSE_SHARE_PRICE[i])
谁能帮我解决这个问题?
提前致谢。
亲切的问候
阿森
解决方案
May be a proper indentation and for loop block could help
for (i in 1:(nrow(PLC_Return)-1))
{
if (i == 1)
{
NUMBER_OF_SHARES[i] =
1000/is.na(CLOSE_SHARE_PRICE[i])
}
else if((is.na(PLC_Return[i, 1]) == is.na(PLC_Return[i + 1, 1])) {
NUMBER_OF_SHARES[i]=0
}
else
{
NUMBER_OF_SHARES[i] =
1100is.na(CLOSE_SHARE_PRICE[i])
}
}
推荐阅读
- php - php sort multidimensional array by key
- javascript - 页面上的不同内容 Apify Webcrawling
- node.js - 为什么我不能使用 react.createContext()
- javascript - 从实现从打字稿中另一个文件导出的接口的类中调用公共函数
- jooq - 使用 jOOQ 从现有记录中进行选择
- msbuild - 将我的构建部署到 azure 时(我使用 devops 管道,但我也尝试直接通过 Visual Studio 部署)我不断收到资源未找到 404
- tinymce - 在 tinymce.init() 中为 fontsize 和 fontfamily 设置默认文本/值
- mysql - SQL 更改值
- corda - 恶意 Corda Oracle
- java - 如何在线程结果后更新警报对话框文本?