我有一个如下数据框:
1 a
2 a
3 a
4 a
a a
x b
y b
b b
我如何使用以获得类似的东西:
a 1,2,3,4
b x,y
考虑标识符 a 和 b 也列在第1列中,但不应该是连接字符串的一部分。非常感谢!
答案 0 :(得分:1)
根据初步说明,
aggregate(V1~V2, df1, toString)
# V2 V1
#1 a 1, 2, 3, 4
#2 b x, y
假设我们需要删除第一列(' V1')中的元素,这些元素也存在于分组列中(' V2')我们paste
之前V1
的元素在一起,下面列出了几个选项:
library(data.table)
setDT(df2)[!V1 %chin% V2, toString(V1), by=V2]
# V2 V1
#1: a 1, 2, 3, 4
#2: b x, y
或者
library(dplyr)
df2 %>%
filter(!V1 %in% V2) %>%
group_by(V2) %>%
summarise(V1=toString(V1))
df1 <- structure(list(V1 = c("1", "2", "3", "4", "x", "y"),
V2 = c("a",
"a", "a", "a", "b", "b")), .Names = c("V1", "V2"),
class = "data.frame", row.names = c(NA, -6L))
df2 <- structure(list(V1 = c("1", "2", "3", "4", "a", "x", "y", "b"),
V2 = c("a", "a", "a", "a", "a", "b", "b", "b")), .Names = c("V1",
"V2"), class = "data.frame", row.names = c(NA, -8L))