各位大神,R语言如何对数据框两列数据比较是否相等?找到不想等的行数?

0
已邀请:
1

贝克汉姆 - 高级数据仓库工程师,拥有丰富的数据治理实践经验 2017-03-29 回答

>#构建一个data frame,判断start_date 和end_date是否相等
> emp.data <- data.frame(
+ emp_id = c (1:5),
+ emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),
+ salary = c(623.3,515.2,611.0,729.0,843.25),
+ start_date = as.Date(c("2012-01-01","2013-09-23","2014-11-15","2014-05-11","2015-03-27")),
+ end_date = as.Date(c("2012-02-01","2013-09-23","2014-12-15","2014-05-11","2015-04-27")),
+ stringsAsFactors=FALSE
+ )
>#新增一列
>emp.data$isEqual <- ifelse(emp.data$start_date==emp.data$end_date,1,0) # start_date=end_date则为1,否则为0
> print(emp.data)
emp_id emp_name salary start_date   end_date isEqual
1      1     Rick 623.30 2012-01-01 2012-02-01       0
2      2      Dan 515.20 2013-09-23 2013-09-23       1
3      3 Michelle 611.00 2014-11-15 2014-12-15       0
4      4     Ryan 729.00 2014-05-11 2014-05-11       1
5      5     Gary 843.25 2015-03-27 2015-04-27       0
>#现在,找出isEqual=0的行,就是你需要的结果
>result <- emp.data[which(emp.data$isEqual==0),]
> print(result)
emp_id emp_name salary start_date   end_date isEqual
1      1     Rick 623.30 2012-01-01 2012-02-01       0
3      3 Michelle 611.00 2014-11-15 2014-12-15       0
5      5     Gary 843.25 2015-03-27 2015-04-27       0





 

要回复问题请先登录注册