我有一个所谓的扁平数据框,有大约 40 列不同的数据类型。对于前 15 列左右,有一个变量充当唯一索引。因为它是一个扁平化的关系数据库,所以在这些列中,该索引变量中具有相同值的所有行应该是相同的。但他们不是。我想找出错别字在哪里。
我做了这个非常简化的例子:
structure(list(f = structure(c(1L, 2L, 3L, 3L, 4L, 5L, 6L, 6L,
7L, 7L), .Label = c("a", "b", "c", "d", "e", "f", "g"), class = "factor"),
number = c(1, 2, 3, 3, 4, 5, 6, 7, 21, 21), name = structure(c(1L,
2L, 4L, 3L, 5L, 6L, 7L, 7L, 8L, 8L), .Label = c("alfa", "beta",
"calostrE", "calostrO", "dedo", "elefante", "fiasco", "general"
), class = "factor")), .Names = c("f", "number", "name"), row.names = c(NA,
-10L), class = "data.frame")
它看起来像这样:
f number name
1 a 1 alfa
2 b 2 beta
3 c 3 calostrO
4 c 3 calostrE
5 d 4 dedo
6 e 5 elefante
7 f 6 fiasco
8 f 7 fiasco
9 g 21 general
10 g 21 general
f 是唯一索引。在我的原始数据框中,这是一个已转换为因子的日期,但这无关紧要。如您所见,第 9 行和第 10 行是正确的,因为所有其他变量值都是相同的。第 1、2、5 和 6 行也是正确的,因为每个因子值只有一行。但是第 3-4 行和第 7-8 行是不正确的:它们有错别字,并且变量的值不相同。
我想要的结果是这样的:
Rows.with.typos..........Column.names
.....3......................."name"
.....7......................."number"
如您所见,我也遇到了降价问题。
这个例子很简单,但是如果在多个列中存在不等式(错别字),则最终结果中的“列名”下应该有多个元素。另请注意,我的原始数据框很宽并且有很多列,对于给定的 f 值,只有其中一些列应该是相同的。
事后澄清:所选行始终是该组的第一个(请参阅我对以下评论的回复)。
我只设法得到了有错别字的行,但是以一种非常复杂的方式,我认为发布它没有用。