我有一个数据框all_order,它有很多列:ORDER_NUMBER,DATE,table,chair,book等。列表,椅子,书等中的每一个都将具有1或0的值。
我想创建一个用户定义的函数,它将通过仅保留order_number,date和其中一个变量(table或chair或book等)来仅对all_order进行子集化,并且仅保存table或chair或book等于1的观察值到目前为止,我已经这样做了
myfunc <- function(varia, newdate){
new_file <- all_order[,c("ORDER_NUMBER","DATE",varia)]
new_file <- subset(new_file,varia==1)
new_file$newdate <- new_file$DATE
myoutput <- new_file
return(myoutput)
}
myoutput <- myfunc("table",table_date)
它总是以0观察返回myoutput,虽然我知道它不应该。我已经更改了第二行代码,但仍然返回0观察。
new_file <- subset(new_file,as.name(varia)==1)
你能帮助我吗?感谢。
示例数据如下:
ORDER_NUMBER DATE table chair
1 15880107 2015-12-22 09:44:33 0 0
2 15880107 2016-03-15 14:35:12 0 0
3 15880107 2016-03-30 15:56:34 0 0
4 15880107 2016-03-24 15:02:11 0 0
5 35141357 2016-06-03 15:04:18 0 0
6 15880107 2015-10-14 14:39:04 0 0
7 15880107 2015-09-24 10:19:07 0 0