首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何连接按另一列A、SQL和R分组的B列的值

如何连接按另一列A、SQL和R分组的B列的值
EN

Stack Overflow用户
提问于 2022-09-05 13:47:08
回答 2查看 56关注 0票数 1

我有这个数据

代码语言:javascript
复制
df <- data.frame(scientific_name = c("Mandevilla grazielae",
                                     "Aosa parvifolia",
                                     "Mandevilla grazielae",
                                     "Dyckia ebracteata"), 
                 collection_number = c("254", "658","445", "568"))

我想在一个名为“凭单”的栏目中把这些植物的收藏编号结合起来。

代码语言:javascript
复制
scientific_name       vouchers
Mandevilla grazielae  254, 445
Aosa parvifolia       658
Dyckia ebracteata     568

到目前为止,这就是我所能做的:

代码语言:javascript
复制
x <- sqldf('SELECT * FROM df GROUP BY scientific_name ORDER BY scientific_name ASC')

然后我开始学到更多..。

代码语言:javascript
复制
x <- sqldf('SELECT scientific_name, COUNT(collection_number) 
            FROM df GROUP BY scientific_name ORDER BY scientific_name ASC')

我想知道上面的计数函数是否可以连接“凭单”列中的"collection_number“列。我也试过了,但没成功。

我会非常感激的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-05 14:15:12

base R中,使用aggregatepaste

代码语言:javascript
复制
aggregate(cbind(vouchers = collection_number) ~ scientific_name, df, toString)

-output

代码语言:javascript
复制
        scientific_name vouchers
1      Aosa parvifolia      658
2    Dyckia ebracteata      568
3 Mandevilla grazielae 254, 445
票数 2
EN

Stack Overflow用户

发布于 2022-09-06 12:36:43

1)使用与问题中相同的设置的,使用group_concat连接与科学名称关联的所有集合编号。1表示输出中的第一列或在其位置写出列名,即scientific_name。

代码语言:javascript
复制
library(sqldf)

sqldf("select scientific_name, group_concat(collection_number) as vouchers
  from df
  group by 1
  order by 1")

给予:

代码语言:javascript
复制
       scientific_name vouchers
1      Aosa parvifolia      658
2    Dyckia ebracteata      568
3 Mandevilla grazielae  254,445

2)使用tidyverse的应该这样做:

代码语言:javascript
复制
library(dplyr)

df %>%
  group_by(scientific_name) %>%
  summarize(vendors = toString(collection_number)) %>%
  ungroup %>%
  arrange(scientific_name)

给予:

代码语言:javascript
复制
# A tibble: 3 × 2
  scientific_name      vendors 
  <chr>                <chr>   
1 Aosa parvifolia      658     
2 Dyckia ebracteata    568     
3 Mandevilla grazielae 254, 445
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73610387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档