【发布时间】:2016-07-27 17:37:40
【问题描述】:
我在 data.table 中有重复的行 - 见下文。有几个变量是列表。
ID l29 s14 s2 s7 s71 s91
12345 NULL 3 NULL NULL NULL NULL
12345 NULL NULL 1 NULL NULL NULL
12345 NULL NULL NULL 2 NULL NULL
12345 NULL NULL NULL NULL c(4.5, 8, 9, 10) NULL
12345 NULL NULL NULL NULL c(4.5, 8, 9, 10) NULL
12345 NULL NULL NULL NULL c(4.5, 8, 9, 10) NULL
12345 NULL NULL NULL NULL NULL c(6, 7)
12345 11 NULL NULL NULL NULL NULL
12345 NULL NULL NULL NULL c(4.5, 8, 9, 10) NULL
12345 NULL NULL NULL NULL NULL c(6, 7)
我想将以上内容总结成一行如下:
12345 11 3 1 2 c(4.5, 8, 9, 10) c(6, 7)
有人让我输入数据,我希望这样做吗?
structure(list(SSN_TAX_ID = c("12345", "12345", "12345", "12345",
"12345", "12345", "12345", "12345", "12345", "12345"), L29 = list(
NULL, NULL, NULL, NULL, NULL, NULL, NULL, 11, NULL, NULL),
S14 = list(3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL), S2 = list(NULL, 1, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL), S7 = list(NULL, NULL, 2, NULL, NULL,
NULL, NULL, NULL, NULL, NULL), S71 = list(NULL, NULL,
NULL, c(4.5, 8, 9, 10), c(4.5, 8, 9, 10), c(4.5, 8, 9,
10), NULL, NULL, c(4.5, 8, 9, 10), NULL), S91 = list(
NULL, NULL, NULL, NULL, NULL, NULL, c(6, 7), NULL, NULL,
c(6, 7))), .Names = c("SSN_TAX_ID", "L29", "S14", "S2",
"S7", "S71", "S91"), class = "data.frame", row.names = c(NA,
-10L))
【问题讨论】:
-
你能举个例子让它重现吗?列表中的
unique在 R 中有点乱,但DT[,lapply(.SD, unique)]可能会这样做。 -
@Frank 它结合了重复的行,但我也想要一行上的非重复信息。使用您的方法,第一行是它自己的行,因为它不是重复的,并且重复的行是它自己的行。如何还包括不重复的行?
标签: r data.table unique aggregate