【发布时间】:2016-08-17 14:58:35
【问题描述】:
我正在尝试使用比较字符串的 if 语句在 R 中创建一个计算字段,这在 Excel 中很容易,但我无法在 R 中计算出来。Excel 中的公式如下所示:
=IF(AND(E2<>"Accepted", B2=B3,E3="Accepted" ), -(F2-F3),"")
其中 B 列是 9 位数字的列表(即 200100111),F 列包含日期。我用R写的代码如下:
if(df_srt$NUMBER==shift(df_srt$NUMBER, 1L, type="lead") && df_srt$DESCRIPTION != "Accepted" && shift(VA_df_srt$DESCRIPTION, 1L, type="lead")=="Accepted") {1} else {0}
然后我意识到 if 语句只比较 1 的向量长度,所以这不起作用。我可以单独比较字符串以获得“TRUE”值,如下所示:
TEST2calc <- df_srt$NUMBER==shift(df_srt$NUMBER, 1L, type="lead")
但我想进行这三个比较,然后在它们都为真时分配一个值。
谢谢
【问题讨论】:
-
if中的数字不需要大括号。
标签: r string if-statement strcmp