为合计粘贴功能设置合拢

时间:2020-04-07 14:33:04

标签: r aggregate

我想用两列聚合一个data.frame:在一个列中我有“ num”,这是一个标识符编号,在另一列中我有文本。重要的是,聚合文本的各个部分之间必须有空格。我的代码是这样的:

data_aggr <- aggregate(
  x = data_aggr,
  FUN = paste,
  by = list(data_aggr$num)
)

我用FUN = paste(collapse = " ")

FUN = paste,
collapse = " ",

但这不起作用。我该怎么做?

2 个答案:

答案 0 :(得分:1)

聚合可用于将具有相同num值的行粘贴在一起,如下所示:

data_aggr <- data.frame(num=c(1,1,1,2,2), letters=letters[1:5])
aggregate(data_aggr$letters, list(data_aggr$num), FUN=paste, collapse= " ")

#   Group.1     x
# 1       1 a b c
# 2       2   d e

答案 1 :(得分:0)

一个dplyr解决方案,其想法是创建一个具有行号的新列,以便能够对每一行进行操作。

> library(dplyr)
> df.ask <- data.frame('Num' = 1:10, 
+                      'Text' = letters[1:10])
> 
> df.ask %>% 
+   mutate(row_num = row_number()) %>% 
+   group_by(row_num) %>% 
+   mutate(together = paste(Num, Text, collapse = ' ')) %>%
+   ungroup() %>% 
+   select(-row_num)
# A tibble: 10 x 3
     Num Text  together
   <int> <fct> <chr>   
 1     1 a     1 a     
 2     2 b     2 b     
 3     3 c     3 c     
 4     4 d     4 d     
 5     5 e     5 e     
 6     6 f     6 f     
 7     7 g     7 g     
 8     8 h     8 h     
 9     9 i     9 i     
10    10 j     10 j 
相关问题