首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在dataframe R中创建列值列表对列值进行分组

如何在dataframe R中创建列值列表对列值进行分组
EN

Stack Overflow用户
提问于 2018-01-03 22:41:23
回答 2查看 420关注 0票数 1

如何通过在dataframe R中创建列值列表对列值进行分组。

我的数据

代码语言:javascript
运行
AI代码解释
复制
CustNumber    Queue        CustID          ProNo#

1             Start         1               ESC

2             Start         1               Check

1             Start         1,1,1           hjju623,hjju623

1             Start         1,2,1,1         First44,ESC

2             Start         1,etc,ex        rere43

3             Start         1, 5597595494   151ss5151, 4949we49

我正在使用下面的代码创建列值列表,方法是搜索CustNumber,Queue。

代码语言:javascript
运行
AI代码解释
复制
val<- df %>%
  gather(key,Value, -c(Queue,CustNumber)) %>%
  group_by(Queue,CustNumber, key,Value) %>%
  summarise(Count = n())%>%
  nest(key,Value,Count,.key = "listofvalues")

它给了我。

代码语言:javascript
运行
AI代码解释
复制
Queue     CustNumber    Key     listofvalues

Start       1          CustID   list(Value = c("1", "1,1,1", "1,2,1,1"), Count = c(1, 1, 1))

Start       1          ProNo#   list(Value = c("ESC", "First44,ESC", "hjju623,hjju623"), Count = c(1, 1, 1))

Start       2          CustID   list(Value = c("1", "1,etc,ex"), Count = c(1, 1))   

Start       2          ProNo#   list(Value = c("Check", "rere43"), Count = c(1, 1))  

Start       3          CustID   list(Value = "1, 5597595494", Count = 1)

Start       3          ProNo#   list(Value = "151ss5151, 4949we49", Count = 1)

但我期望的数据框架是

代码语言:javascript
运行
AI代码解释
复制
Queue     CustNumber    Key     listofvalues

Start       1          CustID   list(Value = c("1", "2"), Count = c(7,1))

Start       1          ProNo#   list(Value = c("ESC", "First44", "hjju623"), Count = c(2, 1, 2))

Start       2          CustID   list(Value = c("1", "etc","ex"), Count = c(2, 1,1))   

Start       2          ProNo#   list(Value = c("Check", "rere43"), Count = c(1, 1))  

Start       3          CustID   list(Value = "1", "5597595494", Count = c(1,1))

Start       3          ProNo#   list(Value = "151ss5151", "4949we49", Count = c(1,1))

请帮我做这件事。

数据帧的放置。

代码语言:javascript
运行
AI代码解释
复制
df<-structure(list(CustNumber = c("1", "2", "1", 
"1", "2", "3"), Queue = c("Start", "Start", 
"Start", "Start", "Start", "Start"), CustID = c("1", "1", "1,1,1", 
"1,2,1,1", "1,etc,ex", "1, 5597595494"), `ProNo#` = c("ESC", "Check", "hjju623,hjju623", 
"First44,ESC", "rere43", "151ss5151, 4949we49")), .Names = c("CustNumber", 
"Queue", "CustID", "ProNo#"), row.names = c(NA, 6L), class = "data.frame")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-03 22:54:50

我们需要拆分字符串值。使用separate_rows,我们可以将它转换成'long‘格式,然后在summarise中获取unique’值‘和使用table的频率

代码语言:javascript
运行
AI代码解释
复制
library(dplyr)
library(tidyr)
res <- df %>% 
         gather(key,Value, -c(Queue,CustNumber)) %>% 
         separate_rows(Value, sep=",") %>% 
         group_by(CustNumber, Queue, key) %>% 
         summarise(Count = list(list(Value = unique(Value),
                            Count = table(factor(Value, levels = unique(Value))))))

res$Count[[1]]
#$Value
#[1] "1" "2"

#$Count

#1 2 
#7 1 
票数 0
EN

Stack Overflow用户

发布于 2018-01-03 23:05:00

这将提供所需的输出:

代码语言:javascript
运行
AI代码解释
复制
library(tidyr)
library(dplyr)
df %>%
  gather(key, Value, -c(Queue,CustNumber)) %>% 
  rowwise() %>% 
  mutate(value = strsplit(Value, split = ",")) %>% 
  unnest() %>% 
  group_by(Queue, CustNumber, key, Value) %>%
  summarise(Count = n()) %>% 
  nest(key, Value, Count, .key = "listofvalues")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48089970

复制
相关文章
【说站】Python DataFrame如何根据列值选择行
以上就是Python DataFrame根据列值选择行的方法,希望对大家有所帮助。
很酷的站长
2022/11/24
5.8K0
【说站】Python DataFrame如何根据列值选择行
删除列中的 NULL 值
今天接到一个群友的需求,有一张表的数据如图 1,他希望能通过 SQL 查询出图 2 的结果。
白日梦想家
2020/07/20
10.9K0
删除列中的 NULL 值
如何在 Tableau 中对列进行高亮颜色操作?
在做数据分析时,如果数据量比较大,可以考虑使用颜色对重点关注的数据进行高亮操作,显眼的颜色可以帮助我们快速了解数据和发现问题。比如一个数据表可能会有十几到几十列之多,为了更好的看清某些重要的列,我们可以对表进行如下操作——
小马哥的牛棚
2020/08/20
6.2K0
获取GridView中的某列值
    protected void GridView1_RowEditing(object sen
Java架构师必看
2021/03/22
11.3K0
从DataFrame中删除列
在操作数据的时候,DataFrame对象中删除一个或多个列是常见的操作,并且实现方法较多,然而这中间有很多细节值得关注。
老齐
2021/03/29
7.9K0
Mysql 分组函数(多行处理函数),对一列数据求和、找出最大值、最小值、求一列平均值。
count(*)不是统计某个字段中数据的个数,而是统计总记录的条数 count(字段名)表示统计的是当前字段中不为null的数据的总数量
吃猫的鱼Code
2023/02/02
3.1K0
ORACLE列值合併
在SQL Server中合併列值能够使用For Xml Path,在Oracle中則能够使用wm_concat 或 ListAgg。
全栈程序员站长
2022/07/13
1.2K0
Pandas 查找,丢弃列值唯一的列
数据清洗很重要,本文演示如何使用 Python Pandas 来查找和丢弃 DataFrame 中列值唯一的列,简言之,就是某列的数值除空值外,全都是一样的,比如:全0,全1,或者全部都是一样的字符串如:已支付,已支付,已支付…
萝 卜
2022/05/12
6.4K0
Pandas 查找,丢弃列值唯一的列
(3)合并列值与分拆列值
在SQL中分拆列值和合并列值老生常谈了,从网上搜刮了一下并记录下来,以便不时之需 :)
跟着阿笨一起玩NET
2018/09/18
1.3K0
(3)合并列值与分拆列值
按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值
前几天在Python星耀交流群有个叫【在下不才】的粉丝问了一个Pandas的问题,按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值,这里拿出来给大家分享下,一起学习。
前端皮皮
2022/08/17
3.3K0
按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值
Django ORM 查询表中某列字段值
方式一获取到的是一个QuerySet,内容是键值对构成的,键为表的列名,值为对应的每个值。
BigYoung小站
2020/05/04
4K0
Windows - Hash散列值抓取方法
LM Hash(LAN Manager Hash)其本质是 DES 加密。在 Windows 2008 及开始之后默认禁用的是 LM Hash。
渗透攻击红队
2020/11/25
1.9K0
Windows - Hash散列值抓取方法
Java对List列表进行分组处理(对List列表固定分组/对List列表平均分组)
将一组数据平均分成n组 即:数据分组数固定为N,每组数据个数不定,每组个数由List列表数据总长度决定 /** * 将一组数据平均分成n组 * * @param source 要分组的数据源 * @param n 平均分成n组 * @param <T> * @return */ public static <T> List<List<T>> averageAssign(List<T> source, int n) { List<List<T>> result = new Ar
目的地-Destination
2023/03/06
3.6K0
dataframe行变换为列
使用 import org.apache.spark.sql.functions 里面的函数,具体的方式可以看 functions :
机器学习和大数据挖掘
2019/07/01
1.2K0
Mysql与Oracle中修改列的默认值
背景: 业务发展需要,需要复用历史的表,并且通过表里面原来一个未使用的字段来区分不同的业务。 于是想到通过default来修改列的默认值: alter table A modify column biz default 'old' comment '业务标识 old-老业务, new-新业务' 现象: 上线几天之后,业务反馈旧业务的相关数据查询不到了。找后台运维查生产数据库,发现历史数据的biz字段还是null 原因: 自己在本地mysql数据库试了下,好像的确是default没法修改历史数据为null
SecondWorld
2021/09/08
13.8K0
小技巧:R语言里删除带有缺失值的列
如果是要去除包含缺失值的行,直接使用na.omit()函数就可以了,但是如果要去除含有缺失值的列呢?
用户7010445
2021/07/12
8.4K0
小技巧:R语言里删除带有缺失值的列
使用EXCLE表格,有相同列,取某一列的值
如图,我有两列MAC地址表,然后需要把F列的值取值到D列,可以使用公式:=VLOOKUP(A1,$E$1:$F$44,2,0)进行处理数据。A1代表以哪一列为基础取值参考,$E$1:$F$44代表查找对比范围。
Tacc
2022/01/11
4.8K0
使用EXCLE表格,有相同列,取某一列的值
关于mysql给列加索引这个列值中有null的情况
在需求中由于要批量查数据,且表中数据量挺大(2300万条记录) 且查询条件的这两个字段没有加索引,为了增加查询速度,现在需要去为这两个字段添加索引。 刚开始加索引想到的问题:
袁新栋-jeff.yuan
2020/08/26
4.6K0
点击加载更多

相似问题

基于条件对dataframe列中的值进行分组

111

如何对列(R)中的值进行分组

25

在Python Dataframe中对邻近列值进行分组

217

如何在r中对列中的值序列进行分组?

438

对R中的列和求和值进行分组

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档