当前位置: 首页 > 知识库问答 >
问题:

dplyr中的字符串操作/禁用

姚臻
2023-03-14

我想执行group_by,并使用dplyr对数据帧进行字符串操作

df<-data.frame(varx=c("x1","x1","x2","x2","x2"),vary=c("y1","y2","y3","y4","y5"))

我希望输出(newdf)如下所示:

newdf <- data.frame(varx=c("x1","x2"),catY=c("y1,y2","y3,y4,y5"))

我在dplyr中尝试了以下方法

df %>% group_by(varx)%>%summarise(catY=paste(vary))
Error: expecting a single value

还尝试了以下方法:

df %>% group_by(varx)%>%mutate(catY=paste(vary))

Source: local data frame [5 x 3]
Groups: varx

我可以用基本的数据帧操作。在理解dplyr中的出路时需要帮助。

共有1个答案

应志用
2023-03-14

大卫评论的略短版本是:

library(dplyr)
df %>% group_by(varx) %>% summarise(catY = toString(vary))

#Source: local data frame [2 x 2]
#
#  varx       catY
#1   x1     y1, y2
#2   x2 y3, y4, y5
 类似资料:
  • 前言 忙活了一个礼拜,终于等到周末,可以空下来写点东西。 之前已经完成《数值运算》和《布尔运算》,这次轮到介绍字符串操作 。咱们先得弄明白两个内容: 什么是字符串? 对字符串有哪些操作? 下面是"在线新华字典"的解释: 字符串:简称“串”。有限字符的序列。数据元素为字符的线性表,是一种数据的逻辑结构。在计算机中可有不同的存储结构。在串上可进行求子串、插入字符、删除字符、置换字符等运算。 而字符呢?

  • 字符串操作 函数 char *  rt_strstr (const char *s1, const char *s2)   判断字符串   rt_uint32_t  rt_strcasecmp (const char *a, const char *b)   忽略大小写比较字符串   char *  rt_strncpy (char *dst, const char *src, rt_ubase_

  • 注意:位操作中的位置是反过来的,offset过大,则会在中间填充0,比如 SETBIT bit 0 1,此时bit为10000000,此时再进行SETBIT bit 7 1,此时bit为10000001。offset最大2^32-1。 GETBIT key offset / SETBIT key offset value 设置某个索引的位为0/1 bitcount 对位进行统计 bitop 对1个

  • SETRANGE key offset value 用value 参数覆写(overwrite)给定key 所储存的字符串值,从偏移量offset 开始。 不存在的key 当作空白字符串处理。可以用作append: 注意: 如果偏移量>字符长度, 该字符自动补0x00,注意它不会报错

  • substr key start end 返回截取过的key的字符串值,注意并不修改key的值。下标是从0开始的