r - 在 R 中使用聚合为另一个变量的相同值查找一个变量的唯一值

标签 r aggregate

我想在这个数据框中应用聚合函数:

A <- data.frame(c(1:2,1:2,2),c("a","c","b","c","d"))
colnames(A) <- c("ola","hi")
A

> A
  ola hi
1   1  a
2   2  c
3   1  b
4   2  c
5   2  d

获取具有 A$ola 的有序值和 A$hi 的相应唯一值的 A,如下所示:

A <- data.frame(c(1:2),c("a,b","c,d"))
colnames(A) <- c("ola","hi")
> A
  ola  hi
1   1 a,b
2   2 c,d

我试过这段代码:

aggregate(A, by=list(A$ola), FUN=unique)

但它给出了这个结果:

  Group.1 ola hi.1 hi.2
1       1   1    a    b
2       2   2    c    d

请有人解释一下我做错了什么?

最佳答案

除了 paste 方法,如果我们想要 'hi' 列作为 list

r1 <- aggregate(hi~ola, unique(A), FUN=list)
r1
#  ola   hi
#1   1 a, b
#2   2 c, d

OP 的代码给出了一个 data.frame

r2 <- aggregate(hi~ola, A, FUN=unique)
r2
#  ola hi.1 hi.2
#1   1    a    b
#2   2    c    d

有两列,其中第二列'hi'是一个矩阵

str(r2)
#'data.frame':  2 obs. of  2 variables:
#$ ola: int  1 2
#$ hi : chr [1:2, 1:2] "a" "c" "b" "d"

关于r - 在 R 中使用聚合为另一个变量的相同值查找一个变量的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32537981/

相关文章:

r - 从 R 语料库中创建单词子集

R:如何分隔字符串并放入不同的列

python - pandas 的变换不起作用对 groupby 输出进行排序

python - Pandas:如果相邻列中的字符串包含来自另一个 DataFrame 的子字符串,则 DataFrame 列中的平均值

r - 需要一个包含聚合数据的表 : aggregations and crosstabs

r - 在 R 中计算时间序列的每日众数

r - R 中 %in% 运算符的重载

r - 如何有效地对稀疏数据进行聚合

MySQL:计算多个状态的持续时间

r - 查找向量或列中第二(第三...)最高/最低值的最快方法