全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1597 4
2018-08-06
例如有三个文件:

A.txt
A       a       1
j       s       a
c       d       a
b      j        2


B.txt
a       j       a
b       j       2
A       a       1


C.txt
b       j       2
A       a       1


删除三个文件中都有的行,最后产生的三个文件如下:
1.txt
j       s       a
c       d       a


2.txt
a       j       a

3.txt
None

请问有什么简单一点方法可以办到吗?难道要循环三个文件?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-8-7 10:29:23
我觉得没什么简单的办法。
读三个数据框,相互join 一下,再写入到文件,大概就这么个思路吧,其实也不算很麻烦吧。 如果文件非常大的话肯定是成本大一些
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-8-7 17:09:25
###############################
ibrary(dityverse)
# 三种数据集分别为Ada,Bda ,Cda ,三数据集的变量名应相同
################################
  myda<-bind_rows(Ada,Bda,Cda)
   xv<-names(myda)
  yda<-myda%>%distinct()%>%add_column(gp=1L:NROW(.), gf=1L)
xda<- myda%>%left_join(yda)%>%group_by(gp)%>%summarise(gf=sum(gf))%>%filter(gf<3)%>%
                           ungroup()%>%selelect(-gp,-gf)
### 用xda 依次获得三个新数据集Anda,Bnda,Cnda

  Anda<-semi_join(xda,Ada)
  Bnda<-semi_join(xda,Bda)
  Cnda<-semi_join(xda,Cda)
##################################
##  以上 *_join 中用了参数 by 缺失设置的特性。。
### 中间数据删除
rm(xda,yda,myda)
#####################
## 不知是否可行,请一试。。。。。
         
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-8-7 17:10:35
jgchen1966 发表于 2018-8-7 17:09
###############################
ibrary(dityverse)
# 三种数据集分别为Ada,Bda ,Cda ,三数据集的变量名 ...
xv<-names(myda)   ## 多余了,前认为有用,后又没用它,可删除!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-8-8 15:12:23
此问题,是一个不错的,巧用 一系列 tidyr::*_join函数的案例。。 尤其巧用 参数 by =NULL  缺失设置。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群