R语言常用数据管理

2023-10-27

1、变量的重命名

(1)交互式编辑器修改变量名

若要修改数据集x中的变量名,键入fix(x)即可打开交互式编辑器的界面。若数据集为矩阵或数据框,单击交互式编辑器界面中对应要修改的变量名,可手动输入新的变量名;若数据集为列表,则交互式编辑界面为一个记事本,只要修改“.Names”之后对应的变量名,即可修改变量名。

(2)rename()函数修改变量名

可用于修改数据框和列表的变量名,但不能用于修改矩阵的变量名  格式:dataframe<-rename(dataframe,c(oldname="newname",...))

library(reshape)

rename(score,c(pl="Chinese"))

rename(score.list,c(pl="chinese))

(3)names()函数修改变量名

可用于修改数据框和列表的变量名,但不能用于修改矩阵的变量名     格式:names()<-value

names(score)[5]="chinese"

(4)colnames()函数和rownames()函数修改变量名

R中用于修改矩阵行名和列名的函数,也可用于修改数据框的行数和列数    格式:colnames(x)<-value   rownames(x)<-value

rownames(score)<-letters[1:4]

2、缺失值分析

is.na(x)——返回一个与x等长的逻辑变量

anyNA(x,recursive=FALSE)——判断数据中是否存在缺失值 ,若存在就返回TRUE

na.omit(x)——删除含有缺失值的观测

complete.cases(x)——返回一个逻辑向量,不存在缺失值的行为值为TRUE

3、数据排序

(1)sort ——对向量进行排序,返回排序后的向量

格式:sort(x,na.last=NA,decreasing=FALSE)

sort(score$math)

(2)rank——返回向量中每个数值对应的秩

格式:rank(x,na.last=TRUE,ties.method=c("average","first","random","max","min"))

x<-c(3,4,2,5,5,3,8,9)

rank(x,ties.method="first")

(3)order——对数据进行排序

格式:order(x,na.last=TRUE,decreasing=FALSE)

data_frame[order(data_frame$v2,data_frame$v2,)]

4、随机抽样

(1)srswr()——放回简单随机抽样

格式:srswr(n,N)——表示在总体N中有放回的抽取n个样本,返回一个长度为N的向量,每个向量的值表示抽取的次数

library(sampling)

s<-srswr(10,26)

(2)srswor()——不放回简单随机抽样
格式:srswor()——表示在总体N中有放回的抽取n个样本,返回一个长度为N的向量,每个向量的值表示抽取的次数

library(sampling)

s<-srswor(10,26)

(3)sample()——实现放回简单抽样和不放回简单随机抽样,也可对数据进行随机分组
格式:sample(x, size,replace=FALSE,prob=NULL)——随机抽取x中的数,size为抽取样本数,replace=FALSE为不放回简单随机抽样,prob为权重分量
sample(LETTERS,5,prob=c(0.7,0.3),replace=TRUE)
5、数值运算函数
(1)数学函数
abs(x)、sqrt(x)、ceiling(x)
(2)统计函数
mean(x)、median(x)、sd(x)、var(x)、quantile(x,probs)、range(x)、sum(x)、min(x)、max(x)、scale(x,center=TRUE,scale=FALSE)、diff(x,lag=n)
difftime(time1,time2,units=c("auto","secs","mins","hours","days","weeks"))
(3)概率函数
6、字符串函数
(1)grep()——字符串查询,返回结果为匹配项的下标
格式:grep(pattern,x,ignore.case=FALSE,perl=FALSE,value=FALSE,fixed=FALSE,useBytes=FALSE,invert=FALSE)
txt=c("whatever" ,"is","worth","doing","is","worth","doing","well")
grep("e.*r|wo",txt,fixed=FALSE)
#返回一个 逻辑向量
grepl("e.*r|wo",txt,fixed=FALSE)
#gregexpr()函数   返回一个列表,结果包括匹配项的起始位置及匹配项长度
grepl("e.*r|wo",txt)
(2)sub()——对第一个满足条件的匹配做替换
格式:sub(pattern,replacement,x,ignore.case=FALSE,fixed=FALSE)
txt=c("whatever" ,"is","worth","doing","is","worth","doing","well")
sub("[tr]","k",txt)
(3)gsub()——把所有满足条件的匹配都做替换
格式:gsub(pattern,replacement,x,ignore.case=FALSE,fixed=FALSE)
txt=c("whatever" ,"is","worth","doing","is","worth","doing","well")
gsub("[tr]","k",txt)
(4)strsplit()——字符串拆分
格式:strsplit(x,split,fixed=FALSE,perl=FALSE,useBytes=FALSE)
data<-c("2017年1月1日","2018年1月1日")
strsplit(data,"年")
(5)paste()——字符串连接
格式:paste(...,sep="",collapse=NULL)
paste("AB",1:5,sep="")
7、文本分词
(1)RWordseg包
常用文本分词函数:insertWords(x,save=TRUE)——向词库中导入新词汇,save=TRUE时,表示把操作记录下来,下回启动能直接用
deleteWords(x)——从词库中删除词汇
getOption("isNameRecognition")——查看人名识别功能的状态
segment.options("isNameRecognition"=TRUE)——设置人名识别功能的状态
listDict()——查看词典
installDict()——添加用户自定义的词典
uninstallDict()——卸载用户自定义的词典
segmentCN()——中文分词
(2)jiebaR包
 分词:
worker()函数初始化分词引擎
worker(type="mix",dict=DICTPATH,hmm=HMMPATH,user=USERPATH,idf=IDFPATH,stop_word=STOPPATH,write=T,qmax=20,encoding="UTF-8",detect=T,symbol=F,lines=le+0.5.output=NULL,bylines=F)
初始化分词引擎后,使用分词运算符“<=”或者segment()函数进行分词。
segment(code,jiebar,mod=NULL)
library(jiebaR)
mixseg=worker()                          #默认mix分词引擎
mpseg=worker(type="mp")          #mp分词引擎
hmmseg=worker(type="hmm")     #hmm分词引擎

word="人们都说桂林山水甲天下"

mixseg<=word

mpseg<=word

hmmseg<=word

segment(word,mixseg)

词性标注:

可以使用<=.tagger或者tag来进行分词和词性标注

关键词提取和Simhash计算:需要将worker()中的type参数设置为“keywords”或“Simhash”,并使用topn参数设置关键词个数

keys<=worker("keywords",topn=1)

keys<=word

8、apply函数族

(1)apply()——对数组或者矩阵的一个维度使用函数生成列表、数组、或者向量

格式:apply(x,MARGIN,FUN,...)    MARGIN=1表示矩阵行     MARGIN=2表示矩阵列

x<-matrix(1:20,ncol=4)

x

apply(x,1,mean)

(2)lapply()——对x的每一个元素运用函数,生成一个与元素个数相同的值列表

格式:lapply(x,FUN,...)

(3)sapply()——对x的每一个元素运用函数,生成一个与元素个数相同的值列表

格式:sapply(x,FUN,..,simplify=TRUE,USE.NAMES=TRUE)

(4)tapply()——对不规则阵列使用向量,即对一组非空值按照一组确定因子进行相应计算

格式:tapply(x,INDEX,FUN,...simplify=TRUE)

height<-c(174,165,189,180,165)

sex<-c("M","F","M","M","F")

tapply(height,sex,mean)

(5)mapply()

9、数据整合

(1)数据汇总统计

aggregate(x,by,FUN)

(2)数据融合

melt(data,varnames,value.name="value",na.rm=FALSE)

(3)数据重塑

cast(data,formula,fun.aggregate=NULL,...)

10、控制流

(1)if/else语句

if(condition)  {expr1} else{expr2}

(2)switch语句

switch(expression,list)

(3)循环语句

for(name in expr1) {expr2}

while(cond) {expr}

repeat expr 或repeat{if(cond) {break}}

11、函数的编写

myfunction<-function(arglist){

  statements

     return (object)

}

 

转载于:https://www.cnblogs.com/bigdream6/p/8298892.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R语言常用数据管理 的相关文章

  • Encode and Decode TinyURL

    TinyURL is a URL shortening service where you enter a URL such as https leetcode com problems design tinyurl and it retu

随机推荐

  • 服务器运维基础知识,IDC机房服务器运维基础知识

    机房的服务器的维护是机房运维工作的重点 合理的机房环境对于服务器来说是非常的重要的 随着这年经济的发展 机房也在不断的在很多的方面进行调整 今天我们学习IDC机房服务器运维基础知识 1 关于电力 1 定期检测机房内市电及 UPS 电源是否稳
  • 目标跟踪检测算法(二)——检测与跟踪

    第二阶段 2010年 2012年 检测与跟踪相结合的方法出现 在该阶段 对已存的目标追踪算法出现了两种比较公认的分类 一种是基于生成模型的方法 一种是基于判别模型的方法 在第一阶段中的方法都属于前一种 而基于判别的方法是指通过分类来做跟踪
  • 深入梯度下降(Gradient Descent)

    深入梯度下降 Gradient Descent 算法 1 问题的引出 对于吴恩达的线性回归 先化一个为一个特征 1 0为偏置项 最后列出的误差函数如下图所示 手动求解 目标是优化J 1 其实就是神经网络里面的loss函数 使得loss值最小
  • 事件响应步骤:安全响应的6个步骤

    当发生安全事件时 每一秒都很重要 恶意软件感染迅速蔓延 勒索软件可能造成灾难性破坏 被破坏的帐户可用于特权升级 从而使攻击者获得更敏感的资产 无论您的组织规模大小 您都应该拥有一支训练有素的事件响应团队 负责在事件发生时立即采取行动 请继续
  • 关于vue中的Pinia的介绍

    Pinia是什么 Pinia是vue的专属状态库 允许开发者跨组件或页面共享状态 他是一个拥有组合式API的Vue状态管理库 支持vue2和vue3 有三个概念 state getter 和 action 我们可以假设这些概念相当于组件中的
  • (c语言)输入两个数字,分别计算并输出这两个数字的和、差、乘积、商

    include
  • 【机器学习 - 3】:数据归一化(最值归一化、均值方差归一化)

    文章目录 数据归一化的使用 最值归一化 均值方差归一化 常用 在sklearn中调用归一化 鸢尾花数据归一化 数据归一化的使用 为什么要使用数据归一化 举个例子 例如我们要使用KNN算法来预测肿瘤为良性肿瘤或恶性肿瘤 以下是一些数据 肿瘤大
  • JetBrains IntelliJ IDEA 20191.1中文版

    JetBrains IntelliJ IDEA 20191 1中文版推荐给大家 JetBrains IntelliJ IDEA 20191 1版本更新 修复了几个重要的修复程序 例如 KT 30117 KT 29427 KT 30137和K
  • 八大常用排序

    目录 前言 一 插入排序 二 希尔排序 三 选择排序 四 堆排序 五 冒泡排序 六 快速排序 七 归并排序 八 计数排序 九 稳定性 前言 此篇博客都是以升序为例 降序只需更改部分地方即可 所以只排一个 一 插入排序 单趟排序 如上图 在一
  • JAVA IO流综合案例

    需求 d aaa 3 jpg 复制到 d bbb 1 jpg 思路分析 先读去3 jpg 然后读的同时写入1 jpg package com yang import java io 需求 d aaa 3 jpg 复制到 d bbb 1 jp
  • 【CyberSecurityLearning 40】网络地址配置(Kali/CentOS)

    目录 一 关闭networkmanager服务 二 查看IP 三 配置IP 路由 DNS kali设置root用户登录 一 关闭networkmanager服务 因为这个 小电脑 开启后会替你管理网络 帮你去配 只要它开着会产生很多副作用
  • 背包问题,硬币问题

    至少有4种背包问题 1 01背包 2 部分背包 3 完全背包 4 多重背包 只有部分背包是个贪心问题 其他的都是以01背包为基础的动归问题 部分背包问题 把物品按价值密度从大到小排序 W i V i 然后从第一种物品开始 尽可能多拿当前物品
  • 小程序,Taro,生成图片并保存本地相册

    注意 不能在子组件里使用 import Taro Component Config from tarojs taro import index scss import View from tarojs components class Au
  • 什么是编译器宏?

    在阅读vue的官方文档时 提到了defineProps defineEmits defineExpose withDefaults都是编译器宏 那什么是宏定义 什么又是编译器宏呢 1 什么是宏定义 宏定义是一种将一段代码或值 进行简单替换的
  • 【C语言项目】多臂井径电子测井成像项目(一)

    目录 1 目的和意义 2 本章概述 3 串口R232 4 OpenGL 5 开发环境 6 环境配置 6 1 VS安装OpenGL 6 2 虚拟串口生成工具 7 成品速览 参考文献 1 目的和意义 本项目为获取矿藏地层的油气当量和及时精确地测
  • 【整理贴】截至2023.01.02 博主都写了哪些内容?

    博主虽然参加csdn已经四个年头了 开始创作其实是从21年9月确定了直博才开始的 由于是跨专业 很多基本知识都不牢固 总是忘记 这个锅还是不要给脑雾了 如果每次想用的时候能非常方便的复习就好了 而且通过整理也会知道哪里我原本是会的 还有哪里
  • 多通道图片的卷积

    一 多通道 channels 图片的卷积 网上很多资料都是单通道的卷积 很容易理解 但多通道的卷积更普遍 理解较复杂 需要单独提一下 彩色图像 一般都是RGB三个通道 channel 的 因此输入数据的维度一般有三个 长 宽 通道 比如一个
  • echars图表一进来默认显示tooltip

    写在前面 项目中碰到一个小优化项 echarts图表渲染一进来默认显示指定标记点信息窗即tooltip 效果类似 动手实现 核心是利用chart实例的dispatchAction方法 部分代码示例 注 vue环境
  • Java 进阶二知识--重拾者AIMING

    初级选手 Java 基础知识 重拾者AIMING Aimin20210819 公号 进阶一选手 Java 进阶一知识 重拾者AIMING Aimin20210819 公号 目录 1 参数数组和参数列表 重复使用参数 2 Java深浅拷贝
  • R语言常用数据管理

    1 变量的重命名 1 交互式编辑器修改变量名 若要修改数据集x中的变量名 键入fix x 即可打开交互式编辑器的界面 若数据集为矩阵或数据框 单击交互式编辑器界面中对应要修改的变量名 可手动输入新的变量名 若数据集为列表 则交互式编辑界面为