Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 检查语句并替换值_R_Data.table - Fatal编程技术网

R 检查语句并替换值

R 检查语句并替换值,r,data.table,R,Data.table,我有一张表格,上面显示了一家商店一周开了多少天,以及那一周卖出了多少商品,就像这样 ID days items 1 4 10 2 5 50 3 4 100 4 3 80 5 1 30 6 2 50 7 5 80 我想添加一个列,如果该商店开业超过4天,销售超过50种商品,则该列为真 ID days items check 1 4 10 FALSE 2 5 50 TRUE 3 4

我有一张表格,上面显示了一家商店一周开了多少天,以及那一周卖出了多少商品,就像这样

ID days items
1   4   10  
2   5   50  
3   4   100 
4   3   80  
5   1   30  
6   2   50  
7   5   80  
我想添加一个列,如果该商店开业超过4天,销售超过50种商品,则该列为真

ID days items check
1   4   10    FALSE
2   5   50    TRUE  
3   4   100   TRUE  
4   3   80    FALSE 
5   1   30    FALSE 
6   2   50    FALSE 
7   5   80    TRUE  
如何使用data.table中的:=函数执行此操作? 它可以用FOR循环和IF语句来完成,但代价很高,因为这个表很大

library(data.table)

setDT(df)  
df[, check := days > 4 & items > 50]
这给了我们:

   ID days items check
1:  1    4    10 FALSE
2:  2    5    50 FALSE
3:  3    4   100 FALSE
4:  4    3    80 FALSE
5:  5    1    30 FALSE
6:  6    2    50 FALSE
7:  7    5    80  TRUE
要获得所需结果,您可以添加=尽管这与文本中的描述不匹配:

df[, check := days >= 4 & items >= 50]

   ID days items check
1:  1    4    10 FALSE
2:  2    5    50  TRUE
3:  3    4   100  TRUE
4:  4    3    80 FALSE
5:  5    1    30 FALSE
6:  6    2    50 FALSE
7:  7    5    80  TRUE

这是非常基本的。你研究过数据表中的小插曲了吗?它们展示了如何做到这一点: