# 知识来源于网络,仅供交流使用,如有侵权请及时联系予以删除
str_extract_all() # 字符提取,按照指定规则
x<-"abacdef123456789g"
str_extract_all(x,"[adef0-9]{2,5}")
# 按照给定的[字符]提取出来,且提取出的各个字符串,最少1个字符,最多5个字符
str_extract_all() # 字符提取,按照指定规则
x<-"abacdef123456789g"
str_extract_all(x,"[adef0-9]{2,5}")
# 按照给定的[字符]提取出来,且提取出的各个字符串,最少1个字符,最多5个字符
separate() # 字符串切割,按照指定规则
x<-data.frame(ID="as_01_ax01")x<-data.frame(ID="as_01_ax01")
xx<-separate(x,ID,sep='_',into=c("Season","Team1","Team2"),convert=T)
# convert=F则为分割为字符串,convert=T则为分割后自动格式转换
# Mutate() 增加列,对已有列进行数据运算并添加为新列
mutate(hflights_df,gain = ArrDelay - DepDelay, speed = Distance / AirTime * 60)
作用与 plyr::mutate() 相同, 与 base::transform() 相似, 优势在于可以在同一语句中对刚增加的列进行操作:
apply(item_cat,MARGIN=2, function(x) length(unique(x))) # 行列处理,这是对各列求非重复项个数 # MARGIN=1表示对行进行处理,如果为2,则表示对列进行处理
colSums(x,na.rm = FALSE,dims = 1)
rowSums(x,na.rm = FALSE,dims = 1)
colMeans(x,na.rm = FALSE,dims = 1)
rowMeans(x,na.rm = FALSE,dims = 1)
x <- sample(1:10, 1e5, rep = TRUE) length(unique(x)) # 方法1:求非重复项的个数 library(dplyr) n_distinct(x) # 方法2:求非重复项的个数 apply(data=x,2, function(x) length(unique(x))) # 求取x的各列非重复项个数
x = reorder(as.factor(shop_id), total_sales) #reorder是一个通用函数。该"default"方法将其第一个参数作为分类变量处理,并根据第二个变量(通常是数字)的值对其级别进行重新排序。
# 分组摘要,summarise() library(dplyr) x<-data.frame(id=1:6,name=c("wang","wang","li","chen","zhao","song"), shuxue=c(89,85,68,79,96,53), yuwen=c(77,68,86,87,92,63)) summarise(x,sum(shuxue)) # 等价于 sum(x$shuxue) summarise(group_by(x,name),sum(shuxue)) # 根据name分组求和shuxue summarise(group_by(x,name),sum(shuxue,yuwen)) # 根据name分组求和shuxue+yuwen arrange(summarise(group_by(x,name),qiuhe=sum(shuxue,yuwen)),desc(qiuhe)) # 将分组求和的结果按照新增列qiuhe降序排列 # 也可以先另存为数据框,然后用order进行排序输出