我想执行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中的出路时需要帮助。
大卫评论的略短版本是:
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开始的