您好Stackoverflow社区。我研究了电价动态,并提出了一个关于过滤或省略大数据框架值的问题。
我的data.frame看起来像这样,最初有15个变量:
time_stamp price; renw_elec; wday;
01.01.2014; 12.5; 25,562.25; 3;
02.01.2014; 14.5; 23,896.56; 4;
03.01.2014; 17.6; 26,634.87; 5;
04.01.2014; 12.9; 30,214,56; 6;
05.01.2014; 10.5; 21,256.56; 0;
06.01.2014; 20.4; 28,985.78; 1;
07.01.2014; 22.7; 32,578.98; 2;
我想要做的是根据变量wday中的值过滤data.frame。例如,省略data.frame中变量wday中值0和1的所有行,使其看起来像这样:
time_stamp price; renw_elec; wday;
01.01.2014; 12.5; 25,562.25; 3;
02.01.2014; 14.5; 23,896.56; 4;
03.01.2014; 17.6; 26,634.87; 5;
04.01.2014; 12.9; 30,214,56; 6;
07.01.2014; 22.7; 32,578.98; 2;
我确实尝试用df$wday[is.na(df$wday)]<-0
来做,如在cran上所描述的那样,但它根本不起作用。我做错了什么,或者如何以最好的方式解决这样的问题?
提前谢谢你的帮助! :)
答案 0 :(得分:1)
这是对data.frame的基本过滤:
df[df$wday!=0 & df$wday!=1,]
或
df[df$wday>1,]
或
vec = c(0,1)
df[!(df$wday %in% vec),]
答案 1 :(得分:1)
使用dplyr
,你也可以这样做:
library(dplyr)
df %>% filter(wday > 1)
time_stamp price renw_elec wday
1 01.01.2014 12.5 25562.25 3
2 02.01.2014 14.5 23896.56 4
3 03.01.2014 17.6 26634.87 5
4 04.01.2014 12.9 30214.56 6
5 07.01.2014 22.7 32578.98 2