R 条件语句不工作

R 条件语句不工作,r,if-statement,conditional,lubridate,R,If Statement,Conditional,Lubridate,我要应用以下条件语句: 如果系统日期为1,则在数据框中提取日期列中包含1的行,如果不是,则只打印完整的数据框 我以为我说得对,但它只是说出了日期,而不是整排 以下是我的示例代码: library(lubridate) today <- Sys.Date() day<-format(today, format="%d") day <-as.numeric(day) day [1] 1 DATE <- as.Date(c('2016-10-31', '2016-11-01

我要应用以下条件语句:

如果系统日期为1,则在数据框中提取日期列中包含1的行,如果不是,则只打印完整的数据框

我以为我说得对,但它只是说出了日期,而不是整排

以下是我的示例代码:

library(lubridate)
today <- Sys.Date()
day<-format(today, format="%d")
day <-as.numeric(day)
day

[1] 1

DATE <- as.Date(c('2016-10-31', '2016-11-01','2016-11-02','2016-11-03'))
Revenue <- c(1000,2000,3000,4000)
Count <- c(21000, 23400, 26800,5000)
Price<- c(5.00, 6.00, 6.75, 2.34)
df<-data.frame(DATE, Revenue, Count, Price)

df

        DATE Revenue Count Price
1 2016-10-31    1000 21000  5.00
2 2016-11-01    2000 23400  6.00
3 2016-11-02    3000 26800  6.75
4 2016-11-03    4000  5000  2.34    

df<-data.frame(DATE, Revenue, Count, Price)
df$DAY<-day(df$DATE)
test<-as.data.frame(df)
test$SysDay<-day  

        DATE Revenue Count Price DAY SysDay
1 2016-10-31    1000 21000  5.00  31      1
2 2016-11-01    2000 23400  6.00   1      1
3 2016-11-02    3000 26800  6.75   2      1
4 2016-11-03    4000  5000  2.34   3      1
它给了我这个结果:

[[1]]
[1] "2016-11-01"    
        DATE Revenue Count Price DAY SysDay
1 2016-10-31    1000 21000  5.00  31      1
2 2016-11-01    2000 23400  6.00   1      1
3 2016-11-02    3000 26800  6.75   2      1
4 2016-11-03    4000  5000  2.34   3      1
如果为True,我希望得到以下结果:

        DATE Revenue Count Price DAY SysDay
2 2016-11-01    2000 23400     6   1      1 
如果为False,我希望得到以下结果:

[[1]]
[1] "2016-11-01"    
        DATE Revenue Count Price DAY SysDay
1 2016-10-31    1000 21000  5.00  31      1
2 2016-11-01    2000 23400  6.00   1      1
3 2016-11-02    3000 26800  6.75   2      1
4 2016-11-03    4000  5000  2.34   3      1
请尝试以下方法:

if (min(test$SysDay)==1) { subset(test, DAY == 1 ) } else { test }
ifelse
子集(test,DAY==1)
强制为
列表
,并且只返回第一个元素,因为
min(test$SysDay)==1
是长度为1的逻辑向量。

请尝试以下操作:

if (min(test$SysDay)==1) { subset(test, DAY == 1 ) } else { test }

ifelse
子集(test,DAY==1)
强制到
列表中,并且仅返回第一个元素,因为
min(test$SysDay)==1
是长度为1的逻辑向量。

?ifelse
返回一个与
test
形状相同的值。
?ifelse
返回一个与
test
形状相同的值。谢谢。我会在几分钟内给你这个答案的信用,一旦它允许我!太好了,谢谢。我会在几分钟内给你这个答案的信用,一旦它允许我!