c++ 删除文件第一行_R 根据不同变量删除重复观测

写在前面:

终于要学R了,SAS和R差别还是挺大。想记录下平日里遇到的、学到的一些知识。


问题:想删除Excel中重复的行观测,比如删除名字相同的行。

a5299b2b971a889aa363e497825ce9d6.png
所需处理EXCEL文件(CSV格式)

解决办法:

244e35f0c3dd1f03f7c98e614363f577.png

1:导入CSV文件,取名为test0318,header=T表示保留第一行。

c7144e62bbe765c07a2a32a4f84cf685.png

2:按照姓名进行重复值的删选(如果存在重复,默认保留前面的行),并保存在outcome数据框中。

3:导出outcome数据框为一CSV文件。

f8fb115c924794a502aa825303c3d5f8.png

这样就可以解决上述问题。

但会存在一个问题,名字并不是唯一的,存在着名字重复的问题。所以不能只用名字来进行删除,应该选择一些其他的变量来进行筛选(这就体现了一个唯一码的重要性,例如身份证号等)。

ff3539a0b71168d7b527f75f1ef1b7ad.png
实例文件。图中第一个张三和第二个张三不是一个人。

解决代码:

#将处理数据导入R中,名字取为test0318(处理文件为CSV格式,header=T的意思是保留列名)
test0318<-read.csv("C:/Users/陈文松/Desktop/test.csv",header = TRUE)
#调用dplyr包(如果第一次用R,则需安装这个包,语句为“install.packages("dplyr")”)
library(dplyr)
#按照姓名,年龄,血型进行删选重复行,并且将结果储存至outcome数据框中
outcome<-test0318 %>% 
  group_by(姓名, 年龄,血型) %>%
  filter(row_number() == 1) %>%
  ungroup()
#导出outcome数据框,使其成为一个CSV文件
write.csv(outcome,"C:/Users/陈文松/Desktop/testout.csv",row.names = TRUE)

这样就可以按照姓名、年龄、血型一起来进行重复行的确定,问题解决。

f9db969b468c1b36a62b7c7b76a25308.png
outcome数据框

80fe93527ca6f1c0037e6d1922fd3353.png
导出文件

写在最后:R语言实在是太开源了,有无数方法来解决这个问题。这里只写了一个我会用的。以后可能会补充其他方法。如果大家看到了,也可以讨论其他方法。

补充方法:outcome<- test0318[!duplicated(test0318[,c("姓名","年龄","血型"),]),]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值