R:根据两列的相似性检查删除列
发布时间:2020-12-14 04:35:17 所属栏目:大数据 来源:网络整理
导读:输入 row.no column2 column3 column41 bb ee up2 bb ee down3 bb ee up4 bb yy down5 bb zz up 我有一条规则要删除第1行,第2行和第3行,因为第1行,第2行和第3行的第2列和第3列是相同的,第4列中找到了相互矛盾的数据(向上和向下). 如何让R在column2和column3
输入
row.no column2 column3 column4 1 bb ee up 2 bb ee down 3 bb ee up 4 bb yy down 5 bb zz up 我有一条规则要删除第1行,第2行和第3行,因为第1行,第2行和第3行的第2列和第3列是相同的,第4列中找到了相互矛盾的数据(向上和向下). 如何让R在column2和column3中删除具有相同名称的行,但是收缩第3列以生成矩阵,如下所示: row.no column2 column3 column4 4 bb yy down 5 bb zz up 解决方法
包plyr中的功能确实在这类问题上大放异彩.这是一个使用两行代码的解决方案.
设置数据(由@GavinSimpson友情提供) dat <- structure(list(row.no = 1:5,column2 = structure(c(1L,1L,1L),.Label = "bb",class = "factor"),column3 = structure(c(1L,2L,3L),.Label = c("ee","yy","zz"),column4 = structure(c(2L,2L),.Label = c("down","up"),class = "factor")),.Names = c("row.no","column2","column3","column4"),class = "data.frame",row.names = c(NA,-5L)) 装入plyr包装 library(plyr) 使用ddply分割,分析和组合dat.以下代码行分析将dat分别拆分为(column2和column3)的唯一组合.然后我添加一个名为unique的列,它计算每个set4的column4唯一值的数量.最后,使用简单的子集来仅返回unique == 1的行,并删除第5列. df <- ddply(dat,.(column2,column3),transform,row.no=row.no,unique=length(unique(column4))) df[df$unique==1,-5] 结果如下: row.no column2 column3 column4 4 4 bb yy down 5 5 bb zz up (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |