我的数据框中的一列-z-包含工作日。我想删除以“星期日”和“星期六”为因素的行。
我没有成功使用r<-z[-c(z$x=="Sunday" & z$x=="Saturday", ]
和
r<-subset(z, x!=="Sunday" & x!=="Saturday")
。 x
是列的名称。
你能帮忙解决一下吗?谢谢。数据:
y x
1 1 Monday
2 2 Monday
3 3 Monday
4 4 Monday
5 5 Monday
6 6 Monday
7 7 Monday
8 8 Friday
9 9 Friday
10 10 Friday
11 11 Friday
12 12 Sunday
13 13 Sunday
14 14 Sunday
15 15 Sunday
16 16 Saturday
17 17 Saturday
18 18 Saturday
19 19 Saturday
20 20 Saturday
更新:
我接受了答案,因为它与我提供的df一起工作。当我尝试将它应用于df时,我没有做任何事情。我用
flexW<-subset(flex, Day!="Sunday" & Day!="Saturday")
数据框中的选定变量:
STR(挠曲) 'data.frame':177237 obs。 14变量: .... $ Day:因子w / 7级“星期五”,“星期一”,..:2 2 2 2 2 2 2 2 2 2 ...
答案 0 :(得分:3)
按照你的例子,试试这个:
subset(z, x!="Sunday" & x!="Saturday")
答案 1 :(得分:2)
只是一个基本的R解决方案:
dat[!dat$x %in% c("Sunday", "Saturday"), ]
y x
1 1 Monday
2 2 Monday
3 3 Monday
4 4 Monday
5 5 Monday
6 6 Monday
7 7 Monday
8 8 Friday
9 9 Friday
10 10 Friday
11 11 Friday
或dplyr
,语法几乎相同。
dat %>% filter(!x %in% c("Sunday", "Saturday"))
答案 2 :(得分:2)
> x[x$X != 'Saturday' & x$X!= 'Sunday',]
y x X
1 1 1 Monday
2 2 2 Monday
3 3 3 Monday
4 4 4 Monday
5 5 5 Monday
6 6 6 Monday
7 7 7 Monday
8 8 8 Friday
9 9 9 Friday
10 10 10 Friday
11 11 11 Friday
答案 3 :(得分:1)
从错误输出中,您有" Friday"," Monday"
作为输入。领先的空间被剥离,因为人们在这里试图重现,你需要使用dput(flex)
而不是粘贴,所以这样的事情不会发生。
我猜你的星期六和星期日列是一样的,所以试试:
z[!(z$x %in% c(" Saturday", " Sunday")), ]
答案 4 :(得分:0)
也许这对你有用:
z[!z$x %in% c("Saturday", "Sunday"), ]