【发布时间】:2013-12-30 21:52:11
【问题描述】:
我想比较R中的两个字符串元素。两个元素的str()函数给了我:
> (str(announcmentDate))
chr "24.08.2009"
NULL
> (str(totalReturnsOfCompanyData$Date))
chr [1:3036] "01.01.2002" "02.01.2002" "03.01.2002" "04.01.2002" ...
NULL
>
我试过了:
> for (i in totalReturnsOfCompanyData$Date) {
+ if (totalReturnsOfCompanyData$Date[i]==announcmentDate[1]) {
+
+ print("YUPIDUUUUUUUUUS")
+ }
+ }
Error in if (totalReturnsOfCompanyData$Date[i] == announcmentDate[1]) { :
missing value where TRUE/FALSE needed
为什么会出现此错误? R 中是否有 equal 函数(如在 java 中)来显示字符串相等?
感谢您的回答!
更新
我正在使用 for 循环,因为稍后我需要索引来从数据中提取子样本。
当我尝试时:
> for (i in totalReturnsOfCompanyData$Date) {
+ if (na.omit(totalReturnsOfCompanyData$Date[i])==announcmentDate[1]) {
+
+ # eventWindow120Before <-
+ # eventWindow120After <-
+ print("YUPIDUUUUUUUUUS")
+ }
+ }
Error in if (na.omit(totalReturnsOfCompanyData$Date[i]) == announcmentDate[1]) { :
argument is of length zero
为什么会出现这个错误?
【问题讨论】:
-
输入 (str(announcmentDate[1])) 会得到什么输出
-
@user3116916 我收到了
> (str(announcmentDate[1])) chr "24.08.2009" NULL -
和 (str(totalReturnsOfCompanyData$Date[1]))
-
@user3116916 我收到了
> (str(totalReturnsOfCompanyData$Date[1])) chr "01.01.2002" NULL -
您收到
argument of length zero错误,因为您删除了if语句中的 NA,导致内容为空。您需要在进入循环之前从源数据中删除 NA。但是,首先不需要循环,请参阅我的答案。
标签: r statistics