R语言学习笔记(三)数据处理

2023-11-08

本文的示例数据框集(egData)如下:
这里写图片描述
值标签:

if(FALSE){值标签,levels代表变量实际值,labels代表标签值}
egData$sex <- factor(egData$sex, levels = c(1,2),labels = c("male", "female"))

这里写图片描述
简单的数据处理函数:

if(FALSE){显示对象中元素/成分的数量}
length(egData)
if(FALSE){显示对象的维度}
dim(egData)
if(FALSE){显示对象的结构}
str(egData)
if(FALSE){显示对象的类或类型}
class(egData)
if(FALSE){显示对象的模式}
mode(egData)
if(FALSE){显示对象中各成分的名称}
names(egData)
if(FALSE){列出对象的开始部分,一般前6行}
head(egData)
if(FALSE){列出对象的结束部分,一般最后6行}
tail(egData)

这里写图片描述

if(FALSE){编辑对象}
edit(egData)
if(FALSE){编辑对象,并保存}
egData <- edit(egData)
if(FALSE){编辑对象}
fix(egData)

这里写图片描述

if(FALSE){将对象并入一个向量}
x <- c(c(1,2,3), c(4,5,6))

这里写图片描述

if(FALSE){按列合并对象}
x <- rbind(c(1,2,3), c(4,5,6))

这里写图片描述

if(FALSE){按行合并对象}
x <- cbind(c(1,2,3), c(4,5,6))

这里写图片描述

if(FALSE){添加新变量}
egData$score3 <- c(55,78,90,NA,80,NA,67)

这里写图片描述

if(FALSE){算术运算符}
egData$total <- egData$score1+egData$score2+egData$score3

这里写图片描述

if(FALSE){逻辑运算符,对变量进行重编码}
egData$age[egData$age > 18] <- "Adult"
egData$age[egData$age >= 12 & egData$age <= 18] <- "Youth"
egData$age[egData$age < 12] <- "Kid"

这里写图片描述

if(FALSE){变量重命名,方法1,交互式修改}
fix(egData)
if(FALSE){变量重命名,方法2,调用reshape包的rename方法}
install.packages("reshape")
library(reshape)
egData <- rename(egData, c(age="ageType"))
if(FALSE){变量重命名,方法3,利用names方法}
names(egData)[2] <- "ageType"

这里写图片描述

if(FALSE){缺失值}
if(FALSE){判断缺失值}
is.na(egData$total)
if(FALSE){排除缺失值}
sum(egData$total, na.rm = TRUE)
if(FALSE){删除缺失值}
x <- na.omit(egData)

这里写图片描述

if(FALSE){日期函数}
if(FALSE){当天的日期}
Sys.Date()
if(FALSE){当前的日期和时间}
date()
if(FALSE){指定日期格式}
format(Sys.Date(), format='%B %d %Y')
if(FALSE){时间间隔}
difftime(Sys.Date(), as.Date('2016-12-03'), units = 'days')
if(FALSE){转化为日期格式}
egData$DATE <- as.Date(c('2016-01-01', '2016-02-01', '2016-03-01', '2016-04-01', '2016-05-01', '2016-06-01', '2016-07-01'))

这里写图片描述

if(FALSE){类型判断函数:is.numeric(),is.character(),is.vector(),is.matrix(),is.data.frame(),is.factor(),is.logical()...
类型转化函数:as.numeric(),as.character(),as.vector(),as.matrix(),as.data.frame(),as.factor(),as.logical()...
}
is.numeric(c(1,2,3))
is.vector(c(1,2,3))
is.numeric(as.character(1))

这里写图片描述

if(FALSE){数据排序,默认为升序,变量前面加-即为降序}
egData <- egData[order(egData$total, -egData$score1),]

这里写图片描述

if(FALSE){数据集的合并}
if(FALSE){横向合并数据框(数据集),merge()需要有共同变量,cbind()则不需要,已在上面代码展示过}
egData2 <- data.frame(ID=c(1,2,3,4,5,6,7), class=c(1,1,2,3,2,1,3))
x <- merge(egData, egData2, by='ID')
if(FALSE){纵向合并数据框(数据集),顺序不必一样,也可用于添加行,已在上面代码展示过}

这里写图片描述

if(FALSE){选入变量}
newdata1 <- egData[c("ID","sex","age")]
newdata2 <- egData[,c(1:5)]
if(FALSE){删除变量}
vars <- names(egData) %in% c('total','DATE')
newdata3 <- egData[!vars]
newdata4 <- egData[c(-7,-8)]

24
这里写图片描述

if(FALSE){选入行或列}
mydata1 <- egData[which(egData$score1 > 60 & egData$score2 < 80),]
mydata2 <- mydata1[,1:3]
if(FALSE){选入行或列,利用subset()函数}
mydata3 <- subset(egData, score1 > 60 & score2 < 80, select = c(1:3))

26

if(FALSE){随机抽样,sample()函数}
mysample <- egData[sample(1:nrow(egData), 3 , replace = FALSE),]

这里写图片描述

if(FALSE){利用SQL语句操作数据框,sqldf包}
library(sqldf)
mydata <- sqldf("SELECT ID, sex, ageType FROM egData WHERE score1 > 60 
                AND score2 < 80", row.names = TRUE)
print(mydata)

这里写图片描述

if(FALSE){数学函数}
if(FALSE){绝对值}
abs(-4)
if(FALSE){平方根}
sqrt(25)
if(FALSE){不小于x的最小整数,ceiling(x)}
ceiling(3.475)
if(FALSE){不大于x的最大整数,floor(x)}
floor(3.475)
if(FALSE){向0方向截取x中的整数部分,trunc(x)}
trunc(5.99)
if(FALSE){将x舍入为指定位数的小数,round(x)}
round(3.475, digits = 2)
if(FALSE){将x舍入为指定的有效数字位数,signif(x)}
signif(3.475, digits = 2)
if(FALSE){正弦sin(x),余弦cos(x),正切tan(x)}
cos(2)
if(FALSE){反正弦asin(x),反余弦acos(x),反正切atan(x)}
acos(-0.4161468)
if(FALSE){双曲正弦sinh(x),双曲余弦cosh(x),双曲正切tanh(x)}
sinh(2)
if(FALSE){反双曲正弦asinh(x),反双曲余弦acosh(x),反双曲正切atanh(x)}
asinh(3.62686)
if(FALSE){对x取以n为底的对数,log(x, base = n)}
log(8, base = 2)
if(FALSE){自然对数,log(x),常用对数,log10(x)}
log(10)
log10(10)
if(FALSE){指数函数,exp(x)}
exp(2.302585)
if(FALSE){将上述数学函数作用于数值向量、矩阵、数据框时,它们会独立地作用于每个值}
sqrt(c(4,9,16))

29

if(FALSE){统计函数}
if(FALSE){在考虑以下统计函数时,应考虑它们的可选参数,如na.rm等,可使用help()查看具体的函数使用}
z <- mean(c(1,2,3,4,5), trim = 0.5, na.rm = TRUE)
if(FALSE){平均数,mean(x)}
mean(c(1,2,3,4))
if(FALSE){中位数,median(x)}
median(c(1,2,3,4))
if(FALSE){标准差,sd(x)}
sd(c(1,2,3,4))
if(FALSE){方差,var(x)}
var(c(1,2,3,4))
if(FALSE){绝对中位差,mad(x)}
mad(c(1,2,3,4))
if(FALSE){绝对中位差,quantile(x,probs)}
quantile(c(1,2,3,4),c(0.25,0.5,0.75))
if(FALSE){值域,range(x)}
range(c(1,2,3,4))
if(FALSE){求和,sum(x)}
sum(c(1,2,3,4))
if(FALSE){滞后差分,diff(x,lag=n),lag用以指定滞后几项,默认的lag值为1}
diff(c(1,2,3,4))
if(FALSE){最小值}
min(c(1,2,3,4))
if(FALSE){最大值}
max(c(1,2,3,4))
if(FALSE){为数据对象x按列进行中心化(center = TRUE)或标准化(center = TRUE, scale = TRUE)}
scaledata <- scale(egData[,4:6], center = TRUE, scale = TRUE)

这里写图片描述

if(FALSE){概率函数}
if(FALSE){使用方法:[dqpr]distribution_abbreviation(),其中d为密度函数,p为分布函数,q为分位数函数,r为生成随机数,distribution_abbreviation()为概率分布缩写,详见下表}
if(FALSE){绘制标准正态曲线}
x <- pretty(c(-3,3),100)
y <- dnorm(x)
plot(x,y,type="l",xlab="NormalDevite",ylab="Density",yaxs="i")
if(FALSE){位于z=1.96左侧的标准正态曲线下方面积}
pnorm(1.96)
if(FALSE){均值为500,标准差为1000的正态分布的0.9分位点值}
qnorm(0.9, mean = 500, sd = 1000)
if(FALSE){生成50个均值为50,标准差为10的正态随机数}
rnorm(50, mean = 50, sd = 10)

这里写图片描述

概率分布缩写表

分布名称 缩写 分布名称 缩写
Beta分布 beta Logistic分布 logis
二项分布 binom 多项分布 multinom
柯西分布 cauchy 负二项分布 nbinom
(非中心)卡方分布 chisq 正态分布 norm
指数分布 exp 泊松分布 pois
F分布 f Wilcoxon符号秩分布 signrank
Gamma分布 gamma t分布 t
几何分布 geom 均匀分布 unif
超几何分布 hyper Weibull分布 weibull
对数正态分布 lnorm Wilcoxon秩和分布 wilcox
if(FALSE){为生成随机数指定种子,便于结果重现}
set.seed(5)
runif(5)
set.seed(1234)
runif(5)
if(FALSE){利用MASS包的mvrnorm(n, mean, sigma)函数生成多元正态分布数据,其中n为样本大小,mean为均值向量,sigma为方差-协方差矩阵(或相关矩阵)}
library(MASS)
options(digits = 3)
set.seed(1234)
mean <- c(230.7, 146.7, 3.6)
sigma <- matrix(c(15360.8, 6712.2, -47.1, 6721.2, 4700.9, -16.5, -47.1, -16.5, 0.3), nrow = 3, ncol = 3)
mydata <- mvrnorm(500, mean, sigma)
mydata<- as.data.frame(mydata)
names(mydata) <- c('y','x1','x2')
dim(mydata)
> head(mydata, n = 8)

这里写图片描述

if(FALSE){字符处理函数}
if(FALSE){计算x中的字符数量,nchar(x)}
nchar(c('where','is','my','code'))
if(FALSE){提取或替换一个字符向量中的子串,substr(x, start, stop)}
x <- "abcdef"
substr(x,2,4)
substr(x,2,4) <- '2222'
if(FALSE){在x中搜索某种模式。grep(pattern, x, ignore.case = FALSE, fixed = FALSE),ignore.case表示是否忽略大小写。若fixed = FALSE,则pattern为一个正则表达式。若fixed = TRUE, 在pattern为一个文本字符串。返回值为匹配的下标}
grep("A", c("B","a","A","c"), ignore.case=FALSE, fixed=TRUE)
grep("^A", c("Bat","act","cow","AM"), ignore.case=FALSE, fixed=FALSE)
if(FALSE){在x中搜索pattern,并以文本replacement将其替换。若fixed =FALSE,则pattern为一个正则表达式。若fixed = TRUE, 在pattern为一个文本字符串。}
sub("\\s","...","Hello China!", fixed = FALSE)
if(FALSE){在split处分割字符向量x中的元素。strsplit(x, split, fixed=FALSE)若fixed =FALSE,则pattern为一个正则表达式。若fixed = TRUE, 在pattern为一个文本字符串。}
strsplit('I LIVE IN SHANGHAI!', ' ', fixed=TRUE)
if(FALSE){连接字符串,分隔符为sep。paste(...,sep=...)}
paste("x", 1:5, sep="")
paste("x", 1:5, sep="L")
paste("C","Window","Files",sep="/")
if(FALSE){全部转化为大写}
toupper("China")
if(FALSE){全部转化为小写}
tolower("China")

这里写图片描述

if(FALSE){其他实用函数}
if(FALSE){生成序列,seq(from, to, by),by为步长,默认为1}
seq(1,10)
seq(1,10,2)
if(FALSE){将x重复n次}
rep(1:3,2)
if(FALSE){将连续性变量分割为n个水平因子的变量,cut(x,n),使用选项ordered_result=TRUE可以创建有序性因子。}
cut(c(1,3,5,4,6),2)
cut(c(1,3,5,4,6),2,ordered_result = TRUE)
if(FALSE){pretty(x,n),通过选取n+1个等间距的取整值,将连续性变量分割为n个区间,绘图中常用}
pretty(c(-3,3),30)
if(FALSE){cat(...,file="myfile",append=FALSE),连接...中的对象,并将其输出到屏幕上或文件中}
firstname <- c("Jane")
cat("Hello", firstname, "!")

这里写图片描述

数据整合与重构

if(FALSE){t(x),矩阵或数据框的转置}
cars <- mtcars[1:5,1:4]
t(cars)

这里写图片描述

if(FALSE){aggregate(x, by, FUN),整合数据,x为待折叠的对象,by是一个变量名组成的列表,FUN为用来计算描述性统计量的标量函数}
aggregate(mtcars, by=list(mtcars$gear), FUN=mean, na.rm=TRUE)

这里写图片描述

if(FALSE){使用reshape包进行数据融合和重铸}
if(FLASE){melt(),数据融合:每个测量变量独占一行,行中带有要唯一确定这个测量变量所需的标识符变量。}
md <- melt(mydata, id <- (c("id","time")))
if(FLASE){cast(md,formula,FUN),重铸:读取已融合的数据,并使用公式formula和函数FUN将其重塑。其中,formula的公式为:\n
    rowvar1+rowvar2+... ~  colvar1+colvar2+...
    '~'前定义了划掉的变量,以确定各行的内容,"~"后定义了划掉的列变量。
}
cast(md, id~variable, mean)
cast(md, time~variable, mean)

这里写图片描述

if(FALSE){简化代码:attach(),detach(),transform(),within(),with()函数的使用}
if(FALSE){attach(),detach()的使用,以原始egData为对象,添加两列totalmean,分别表示score1,score2的总和和平均值}
attach(egData)
egData$total <- score1+score2
egData$mean <- (score1+score2)/2
detach(egData)
if(FALSE){transform(),实现同上的功能}
egData <- transform(egData, total=score1+score2, mean=(score1+score2)/2)
if(FALSE){within()with(),两者类似,不同的是是否允许修改数据框。实现同上的功能}
egData <- within(egData,{
                 total=score1+score2
                 mean=(score1+score2)/2})

这里写图片描述

if(FALSE){apply()函数,调用格式:
    apply(x, MARGIN, FUN, ...)
    其中,x为数据对象,MARGIN为维度的下标,FUN为指定函数,而...则包括了任何想传递给FUN的参数。在矩阵或数据框中,MARGIN=1表示行,MARGIN=2表示列。
}
if(FALSE){lapply(),sapply()函数,应用到列表(list)上。调用格式如下:
lapply(X, FUN, ...)
sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)}
x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE,FALSE,FALSE,TRUE))
lapply(x, mean)
sapply(x, quantile)

names <- c("Jim Green","Alice Bell","Kent Brown")
split <- strsplit(names, " ")
sapply(split,"[",1)
sapply(split,"[",2)

这里写图片描述
这里写图片描述
这里写图片描述

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

R语言学习笔记(三)数据处理 的相关文章

  • 使用R语言的names函数为DataFrame数据中的所有列进行重命名

    使用R语言的names函数为DataFrame数据中的所有列进行重命名 在R语言中 DataFrame是一种常用的数据结构 用于存储和处理表格型数据 有时候 我们需要为DataFrame中的列重新命名 以便更好地理解和处理数据 这时可以使用
  • R语言作图:坐标轴设置

    R语言作图 坐标轴设置 偷闲阁 2018 02 04 20 51 24 209654 收藏 359 分类专栏 R语言 可视化 文章标签 R 坐标轴 刻度 可视化 版权声明 本文为博主原创文章 遵循 C
  • 三句话,我让R语言自动升级了

    R语言是为数学研究工作者设计的一种数学编程语言 主要用于统计分析 绘图 数据挖掘 跟所有计算机语言一样 R语言也面临升级的问题 本文讲述了最快捷的升级R语言办法 不用重新安装之前的安装包 首先 进入R交互模式 然后三条命令搞定 instal
  • 解决dataframe格式表格的合并

    这几天遇到了一个关于表格合并的问题 其实问题很简单 对于两个表格df1和df2 取出df1的每一行特征和df2的每一行的特征合并 再将label合并 但是看了很多pandas关于表的合并 其并不适用到我这个问题 所以在此我想简单的总结一下关
  • R语言绘图:实现数据点的线性拟合,进行显著性分析(R-squared、p-value)、添加公式到图像

    最近在做关于数据点线性拟合相关的研究 感觉R语言在这方面很方便 而且生成的图片很漂亮 所以在这里和大家分享一下代码 这是别人所绘制的拟合图像 很漂亮 自己也用iris鸢尾花数据集进行一个线性拟合看看 拟合线性模型最基本的函数就是lm 格式为
  • 【报错解决办法】bad restore file magic number (file may be corrupted) -- no data loaded

    今天在服务器上load一个Rdata的时候出现了这个报错 这还是第一次 之前load的都没问题 重装过一次R 上网一搜 发现是r的版本不对 检查之后发现确实如此 windows的R是4 1 2的版本 而linux上是3 6 于是我就重新在l
  • 使用R语言进行数据对象获取的mget函数实战

    使用R语言进行数据对象获取的mget函数实战 在R语言中 我们经常需要获取由多个数据对象组成的列表 为了高效地获取这些对象 R提供了一个非常方便的函数 即mget函数 mget函数可以根据给定的对象名称 在当前环境中查找并返回相应的数据对象
  • Python使用pandas从mysql数据库读取数据并导出到Excel

    工作中我们经常会从数据库中提取数据 处理之后 将结果整理为excel输出 本文主要介绍使用python的pandas工具从mysql数据获取数据 按要求处理之后 导出到excel文件 安装依赖 首先确定已经安装PyMySQL pandas
  • R语言应用序列模式挖掘揭示客户购买行为:深度学习与机器学习的视角

    目录 序列模式挖掘 一个简介 使用R进行序列模式挖掘 应用深度学习和机器学习改善购买行为预测
  • R语言实现文本情感分析

    在本博客中 我们将介绍如何使用R语言进行文本情感分析 我们将介绍如何处理文本数据 构建模型 训练模型并进行情感预测 这里我们将使用IMDb电影评论数据集进行示例分析 数据准备 首先 我们需要下载并加载IMDb电影评论数据集 可以从这里下载数
  • 转载:R语言绘图—图形标题、坐标轴设置

    R语言绘图是通过函数命令及相应参数设置实现的 如plot x y plot为绘图函数命令 x y则是绘图参数 指定了绘图的数据向量 但这种最基本的绘图设置很难满足个性化绘图的要求 我们需要根据需要对图形元素进行设置 图形元素是各类图形的基本
  • R语言GGPLOT2绘制圆环图雷达图/星形图/极坐标图/径向图Polar Chart可视化分析汽车性能数据

    最近我们被客户要求撰写关于可视化的研究报告 包括一些图形和统计输出 漂亮的圆形图 我不确定对数据分析师本身是否有额外的好处 但如果能吸引决策者的注意 那对我来说就是额外的价值 然而 用coord polar 或偶尔发现的ggplot2中的c
  • r如何让新增加的列出现在第一列 r如何调整新增加的列的位置

    https www cnblogs com liujiaxin2018 p 16211983 html 1 任意位置插入列 复制代码 gt a lt letters 1 5 gt b lt LETTERS 1 5 gt c lt sampl
  • 统计建模与r软件课后习题五 5.1~5.11题

    第五章 假设检验 问题导向 由正常男子血小板计数均值这句话 容易判断属于对均值进行检验的问题 H0 与正常男子无差异等于225 H1 与正常男子有差异 不等于225 x c 220 188 162 230 145 160 238 188 2
  • 利用Python读取MongoDB的数据

    近日在处理数据的时候遇到一个问题 数据存储在MongoDB数据库 如图1 而MongoDB模式自由 具有很大的灵活性 可以把不同结构的文档存储在同一个数据库里 即表的字段不是完全固定的 当某个字段有值时就会显示该字段 而当该字段没有值时就不
  • 不同kNN模型在R语言中的比较

    不同kNN模型在R语言中的比较 k近邻 k Nearest Neighbors 简称kNN 是一种常见的机器学习算法 被广泛用于分类和回归问题 它基于一个简单的假设 与某个样本集中距离最近的k个样本具有相似的特征和标签 本文将探讨在R语言中
  • R语言实现RMF模型

    RMF模型说明 RMF模型是客户管理中 常被用来衡量客户价值和客户创利能力的重要方法 它主要考量三个指标 最近一次消费 Recency 近期购买的客户倾向于再度购买 消费频率 Frequency 经常购买的客户再次购买概率高 消费金额 Mo
  • R语言中tidyverse基础知识汇总

    tidyverse group by 分组统计 gather 和spread 简单地说 gather 是列转行 而spread 是行转列 请看下面的示例 gt df id class grade 1 1 a 81 2 2 b 82 3 3
  • R语言采集获取58商铺出租转让信息

    前两篇文章给我一个朋友分析出店铺商品以及地址房源信息 后来去看了下店铺房租有点贵 还是毛坯房 要自己装修 本着节约成本的原则 熬了个通宵 给他采集了一些转租商铺数据 因为数据比较多 过于先进不方便展示 我就将我爬虫程序的模版展示给大家观看
  • R语言——基本操作(二)

    目录 一 矩阵与数组 二 列表 三 数据框 四 因子 五 缺失数据 六 字符串 七 日期和时间 参考 一 矩阵与数组 matrix 创建矩阵 nrow 和 ncol 可以省略 但其值必须满足分配条件 否则会报错 只写一个值则自动分配 默认按

随机推荐

  • python使用sqlalchemy判断数据库是否包含某张表

    代码如下 from sqlalchemy import create engine def table exists engine table name 这个函数用来判断表是否存在 with engine connect as con sq
  • NLP基础知识

    1 熟悉 Python 语言 了解一个深度学习框架 Pytorch Tensorflow 或 MXNet 2 熟悉简单的机器学习模型 如 LR SVM HMM 正则化等 3 熟悉简单的深度学习模型 如 word2vec CNN RNN 目录
  • C++之红黑树

    红黑树 1 概念 红黑树 是一种二叉搜索树 但在每个结点上增加一个存储位表示结点的颜色 可以是Red或Black 通过对任何一条从根到叶子的路径上各个结点着色方式的限制 红黑树确保没有一条路径会比其他路径长出俩倍 因而是接近平衡的 2 性质
  • (转)四元数概念及其应用

    1 采用右手坐标系 OpenGL 2 旋转次序 x gt y gt z 3 矩阵是列优先存储 1 什么是四元数 直接用数学上的定义来解释 因为我很难在现实生活中找到可以描述明白的例子 i j k 为虚数 Q w xi yj zk 其中w是实
  • 图像分类算法—KNN、SVM、BP、CNN

  • Yarn日志过大无法拉取java.lang.RuntimeException: The total log size is too large.The log size limit is 10240M

    yarn拉取日志命令 yarn logs applicationId application 1624172467753 3988 appOwner root size limit mb 1 gt application 162417246
  • 多线程竞争及解决方法

    线程是非独立的 同一个进程里线程的数据是共享的 当各个线程访问数据资源时会出现竞争状态 即 数据几乎同步会被多个线程占用 造成数据混乱 即所谓的线程不安全 解决多线程问题的方法 锁 锁的好处 确保了某段关键代码 共享数据资源 只能有一个线程
  • 树莓派3B+安装Raspbian简易教程

    刚买的树莓派3B 没过一周 树莓派4就出来了 不过算了 基本上用起来差不多 所以大家继续看吧 最近有点忙 所以就不BB了 直接上主题 下载Raspbian Raspbian是树莓派的官方系统 推荐大家使用 如果不喜欢它的话 可以自己安装Ub
  • DynamicDataSource是如何解决多数据源的事务问题?

    多数据源的真面目DynamicRoutingDataSource DynamicRoutingDataSource是什么 该类实现了DataSource接口并在内部维护了一个map 其中存放了多个真实的DataSource 而key则是不同
  • 启动 GDB 调试

    使用 GDB 调试程序一般有三种方式 gdb filename gdb attach pid gdb filename corename 这也对应着本节课的核心内容 直接调试目标程序 附加进程 调试 core 文件 接下来我们逐一讲解 直接
  • Vim重复命令

    1 vim重复命令 重复执行上次命令 普通模式下输入 x 删除第一个字符 然后输入 会再次删除一个字符 重复了 x 的操作 执行指定次数相同的命令 普通模式下输入 N N表示重复后面的次数 例如 输入10x 删除10个连续字符 输入3dd
  • Jquery水平滚动字幕(marquee效果)

    水平滚动字幕 html div class txt scroll div class scrollbox div class txt div div div css txt scroll width 100 line height 1rem
  • VS或者Qt调用外部动态链接库dll的方法

    1 VS调用外部动态链接库dll的方法 Windows 1 1 建立一个Win32控制台应用程序 1 2 如果搭建的是64位应用 需将平台调整为x64 1 3 将程序源码和头文件 动态链接库和静态连接库拷贝到项目对应的文件夹中 1 4 将上
  • Spring依赖注入和控制反转

    文章目录 1 依赖注入 1 1 依赖注入和控制反转的概念 1 2 依赖注入的实现方式 1 3 控制反转的具体实现 1 4 依赖注入的具体实现 1 5 依赖注入和控制反转总结 1 依赖注入 1 1 依赖注入和控制反转的概念 依赖注入 Depe
  • 前后端分离(axios发送数据请求,路由导航守卫,web会话跟踪,token)

    目录 1 前端登录发起请求 a 在 main js 中配置 axios b 组装请求数据 3 连接数据库 4 后端响应 5 前端处理 6 来到main组件时 需在前端判断用户是否登录 7 web会话跟踪技术 token 8 响应拦截器 9
  • os.path.expanduser

    path os path expanduser linux系统path为 home newt windows系统path为 C Users newt 其中newt为我的用户名
  • XSS攻击修改服务器的代码,XSS攻击的定义,类型以及防御方法

    经常跟大家讲 CC攻击 好像还没有给大家分享过XSS攻击它的类型怎么去防御 今天云都小编就带大家了解下 什么是XSS攻击 XXS 攻击全称跨站脚本攻击 是一种在Web应用中的计算机安全漏洞 它允许恶意Web用户将代码植入到提供给其他使用的页
  • 《机器学习》实验五:实现K-means聚类

    机器学习 实验五 实现K means聚类 机器学习 实验五 实现K means聚类 实验目的 实验原理 实验内容与要求 实验器材 设备 元器件 实验步骤 心得体会 机器学习 实验五 实现K means聚类 实验目的 了解聚类的基本概念 掌握
  • javascript对象小探之三——undefined和undeclared

    一 undefined undefined是javascript的一个数据类型对象 var i 那么i的值就是undefined 二 undeclared undeclared是一种语法错误 不是数据类型 不要误会了 但是js引擎不会报错
  • R语言学习笔记(三)数据处理

    本文的示例数据框集 egData 如下 值标签 if FALSE 值标签 levels代表变量实际值 labels代表标签值 egData sex lt factor egData sex levels c 1 2 labels c mal