【数据挖掘】实验3:常用的数据管理

实验3:常用的数据管理

一:实验目的与要求

1:熟悉和掌握常用的数据管理方法,包括变量重命名、缺失值分析、数据排序、随机抽样、字符串处理、文本分词。

二:实验内容

【创建新变量】

方法1:

mydata <- iris[,1:2]

mydata$square <- mydata$Sepal.Length*mydata$Sepal.Width

方法2:

rm(list=ls())

mydata <- iris[,1:2]

attach(mydata)

mydata$square <- Sepal.Length*Sepal.Width

detach(mydata)

方法3:使用DT包(现在已经无法从CRAN下载)

rm(list=ls())

mydata <- iris[,1:2]

mydata <- transform(mydata,square=Sepal.Length*Sepal.Width)

library(DT)

datatable(mydata,rownames=F)

【变量重新编码】

Eg1:

rm(list = ls())

mydata <- mtcars

(mydata$am <- ifelse(mydata$am == 0,'automatic','manual'))

Eg2:将99岁这样的年龄重编码为缺失值

manager <- c(1,2,3,4,5)

date <- c('10/24/08','10/28/08','10/1/08','10/12/08','5/1/09')

country <- c('US','US','UK','UK','UK')

gender <- c('M','F','F','M','F')

age <- c(32,45,25,39,99)

q1 <- c(5,3,3,3,2)

q2 <- c(4,5,5,3,2)

q3 <- c(5,2,5,4,1)

q4 <- c(5,5,5,NA,2)

q5 <- c(5,5,2,NA,1)

leadership <- data.frame(manager,date,country,gender,age,q1,q2,q3,q4,q5, stringsAsFactors = FALSE)

leadership$age[leadership$age==99] <- NA

Eg3:将年龄离散化,将leadership中age(连续型变量)重新编码为类别型变量agecat

leadership$agecat[leadership$age > 66] <- "Elder"

leadership$agecat[leadership$age > 40 & leadership$age<66] <- "Middle Aged"

leadership$agecat[leadership$age >=18 & leadership$age<=40] <- "Young"

Eg4:同上,但使用within函数

leadership <- within(leadership, {agecat <- NA

  agecat[age > 75] <- 'Elder'

  agecat[age >-55 & age <=75] <- 'Middle Aged'

  agecat[age < 55] <- 'Young'})

【变量的重命名】

Eg1:

install.packages("reshape", repos = "http://cran.r-project.org")

w <- mtcars

library(reshape)

colnames(w)

w <- rename(w,c(mpg='Miles/(US) gallon',cy1='Number of Cylinders',disp='Displacement(cu.in)',hp='cross horsepower'))

colnames(w)

names(w)[5] <- 'Rear axle ratio'

names(w)

【数据排序】

Eg1:

x <- c(19, 84, 64, 2)

order(x)

rank(x)

sort(x)

【随机抽样】

Eg1:

install.packages("sampling",repos = "http://cran.r-project.org")

library(sampling)

LETTERS

(s<-srswor(10,26))

(obs<-((1:26)[s!=0]))

(sample<-LETTERS[obs])

Eg2:

library(sampling)

LETTERS

(s<-srswr(10,26))

(obs<-((1:26)[s!=0]))

(n<-s[s!=0])

(obs<-rep(obs,times=n))

(sample<-LETTERS[obs])

Eg3:

library(sampling)

LETTERS

sample(LETTERS,5,replace=TRUE)

sample(LETTERS,5,replace=FALSE)

Eg4:

library(sampling)

LETTERS

n<-sample(2,26,replace=T,prob=c(0.7,0.3))

n

(sample1 <- LETTERS[n==1])

(sample2 <- LETTERS[n==2])

【数学函数】

Eg1:

x <- c(1.12, -1.234, 3.1, 2.3, -4)

abs(x)

sqrt(25)

ceiling(x)

floor(x)

round(x,digits=1)

signif(x,digits=1)

【统计函数】

方法1:

mean(rivers)

median(rivers)

sd(rivers)

var(rivers)

quantile(rivers,c(.3,.84))

range(rivers)

min(rivers)

max(rivers)

【基本函数】

Eg1:鸢尾花数据集操作

head(iris)

colnames(iris)

names(iris)

sum(iris$Sepal.Length)

max(iris$Sepal.Length)

min(iris$Sepal.Length)

which.max(iris$Sepal.Length)

which.min(iris$Sepal.Length)

range(iris$Sepal.Length)

 

 

【高级函数】

Eg1:鸢尾花数据集操作

(x<-rnorm(1))

round(x,2)

index<-sample(1:150,30)

iris1<-iris$Sepal.Length[index]

sort(iris1)

order(iris1)

【概率函数】

Eg1:

data<-rnorm(20)

data

dnorm(data)

pnorm(data)

qnorm(0.9,mean=0,sd=1)

【字符串操作】

Eg1:字符串长度

data<-'R语言是一门艺术'

nchar(data)

Eg2:字符串合并

data1<-'用心去体会'

paste(data,data1,sep="")

 

Eg3:paste函数合并

paste("AB",1:5,sep="")

x<-list(a="1st",b="2nd",c="3rd")

y<-list(d=1,e=2)

paste(x,y,sep="-")

paste(x,y,sep="-",collapse=";")

paste(x,collapse=",")

Eg4:分割字符串

data<-c("2016年1月1日","2016年2月1日")

strsplit(data,"年")

strsplit(data,"年")[[1]][1]

Eg5:字符串替换

txt <- c("Whatever","is","worth","doing","is","worth","doing","well")

sub("[tr]","k",txt)

gsub("[tr]","k",txt)

Eg6:

(x<-'abadfa')

(substr(x,2,4))

substr(x,2,4)<-'kkk'

x

Eg7:

(x<-'abadfaf')

(x<-chartr('k','h',x))

(x<-chartr('faf','tBt',x))

(x<-chartr('faf','ttt',x))

(x<-chartr('af','Tt',x))

【jiebaR】

Eg1:(由于未找到data.txt文件,因此未对文件进行分词)

install.packages("jiebaR",repos = "http://cran.r-project.org")

library(jiebaR)

mixseg <- worker()

mpseg <- worker(type="mp")

hmmseg <- worker(type="hmm")

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

mixseg <= word

mpseg <= word

hmmseg <= word

segment(word,mixseg)

qseg <= word

qseg[word]

【apply家族】

Eg1:鸢尾花维度处理

apply(iris[,1:4],1,mean)

sapply(iris,mean)

lapply(iris[,1:4],mean)

Eg2:对列表x的每一个元素计算均值

x <- list(a=1:5,b=exp(0:3))

lapply(x,mean)

Eg3:计算矩阵x各行各列的均值

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

x

apply(x,1,mean)

apply(x,2,mean)

Eg4:列表list中的元素与数字1-3连接,并以矩阵和列表两种形式输出

list<-list(c("a","b","c"),c("A","B","C"))

list

sapply(list,paste,1:3,simplify=T)

sapply(list,paste,1:3,simplify=F)

【数据汇总统计】

Eg1:

attach(mtcars)

colnames(mtcars)

aggregate(mtcars[,c(1,3)],by=list(cyl,gear),FUN=mean)

【数据融合】

Eg1:melt函数融合数据框和数组

library(reshape)

head(airquality)

air_melt <- melt(airquality,id=c("Ozone","Month","Day"),na.rm=TRUE)

head(air_melt)

a <- array(c(1:11,NA),c(2,3,2))

a

a_melt <- melt(a,na.rm=TRUE,varnames=c("X","Y","Z"))

a_melt

【数据重塑】

Eg1:

install.packages("reshape2")

library(reshape2)

air_cast <- dcast(air_melt,Month~variable,fun.aggregate=mean)

air_cast

【粘贴数据结构】

Eg1:数据框加载

authors <- data.frame(

  surname=I(c('Tukey','venables','Tierney','Ripley','McNeil')),

  nationality=c('US','Australia','US',"UK",'Australia'),

  deceased=c('yes',rep('no',4))

)

books<-data.frame(

  name=I(c('Tukey','Venables','Tierney','Ripley','Ripley','McNeil','R core')),

  title=c('Exploratory Data Analysis',

          'Modern Applied statistics...',

          'LISP-STAT',

          'Spatial Statistics',

          'Stochastic Simulation',

          'Interactive Data Analysis',

          'An Introduction to R'),

  other.author = c(NA,'Ripley',NA,NA,NA,NA,'Venables & Smi')

)

Eg2:merge函数

(m1<-merge(authors,books,by.x='surname',by.y='name',all=F))

merge(authors,books,by.x='surname',by.y='name',all=T)

【转换函数】

Eg1:transform函数

head(airquality)

head(transform(airquality,Ozone=-Ozone))

head(transform(airquality,new=-Ozone))

【while循环语句】

Eg1:

pv <- c(1,1,2,3,1,1,15,7,18)

i<-1

result<-""

length(pv)

while(i<=length(pv)){

  if(pv[i]<=5){

    result[i] <- "初级用户"

  }else if(pv[i]<=15){

    result[i] <- "中级用户"

  }else{

    result[i] <- "高级用户"

  }

  i <- i+1

}

result

【for循环】

Eg1:不知道循环次数

pv <- c(1,1,2,3,1,1,15,7,18,1,1,2,3,1,1)

result<-""

m<-1

for(i in pv){

  if(i<=5){

    result[m]<-"初级用户";

  }else if(i<=15){

    result[m]<-"中级用户";

  }else{

    result[m]<-"高级用户";

  }

  m<-m+1

}

result

Eg2:知道循环次数

pv <- c(1,1,2,3,1,1,15,7,18,1,1,2,3,1,1)

result<-""

for(i in 1:length(pv)){

  if(pv[i]<=5){

    result[i]<-"初级用户";

  }else if(pv[i]<=15){

    result[i]<-"中级用户";

  }else{

    result[i]<-"高级用户";

  }

}

result

【repeat-break循环】

Eg1:

pv <- c(1,1,2,3,1,1,15,7,18)

i<-1

result<-""

repeat{

  if(i>length(pv)){

    break

  }

  if(pv[i]<=5){

    result[i]<-"初级用户"

  }else if(pv[i]<=15){

    result[i]<-"中级用户"

  }else{

    result[i]<-"高级用户"

  }

  i<-i+1

}

result

【自定义函数】

Eg1:自定义一个求两数之和的函数

s <- function(x,y){

  a<-x+y

  return(a)

}

s(2,3)

三:课堂练习

【练习1】PPT-05第27页

案例1:

scale(cars,center=T,scale=F) # centrialize

scale(cars,center=T,scale=T) # standarlize

diff(cars[,1]) # differentiate

案例2:

date <- c("2016-01-27","2016-02-27")

difftime(date[2],date[1],units="days")

difftime(date[2],date[1],units="weeks")

【练习2】PPT-05第27页

案例1:subset函数选定特定行或子集

subset(airquality, Temp > 80, select = c(Ozone, Temp))

案例2:

subset(airquality, Day == 1, select=-Temp)

案例3:

subset(airquality, select = Ozone:Wind)

详细结果如下表所示

    Ozone Solar.R Wind

1      41     190  7.4

2      36     118  8.0

3      12     149 12.6

4      18     313 11.5

5      NA      NA 14.3

6      28      NA 14.9

7      23     299  8.6

8      19      99 13.8

9       8      19 20.1

10     NA     194  8.6

11      7      NA  6.9

12     16     256  9.7

13     11     290  9.2

14     14     274 10.9

15     18      65 13.2

16     14     334 11.5

17     34     307 12.0

18      6      78 18.4

19     30     322 11.5

20     11      44  9.7

21      1       8  9.7

22     11     320 16.6

23      4      25  9.7

24     32      92 12.0

25     NA      66 16.6

26     NA     266 14.9

27     NA      NA  8.0

28     23      13 12.0

29     45     252 14.9

30    115     223  5.7

31     37     279  7.4

32     NA     286  8.6

33     NA     287  9.7

34     NA     242 16.1

35     NA     186  9.2

36     NA     220  8.6

37     NA     264 14.3

38     29     127  9.7

39     NA     273  6.9

40     71     291 13.8

41     39     323 11.5

42     NA     259 10.9

43     NA     250  9.2

44     23     148  8.0

45     NA     332 13.8

46     NA     322 11.5

47     21     191 14.9

48     37     284 20.7

49     20      37  9.2

50     12     120 11.5

51     13     137 10.3

52     NA     150  6.3

53     NA      59  1.7

54     NA      91  4.6

55     NA     250  6.3

56     NA     135  8.0

57     NA     127  8.0

58     NA      47 10.3

59     NA      98 11.5

60     NA      31 14.9

61     NA     138  8.0

62    135     269  4.1

63     49     248  9.2

64     32     236  9.2

65     NA     101 10.9

66     64     175  4.6

67     40     314 10.9

68     77     276  5.1

69     97     267  6.3

70     97     272  5.7

71     85     175  7.4

72     NA     139  8.6

73     10     264 14.3

74     27     175 14.9

75     NA     291 14.9

76      7      48 14.3

77     48     260  6.9

78     35     274 10.3

79     61     285  6.3

80     79     187  5.1

81     63     220 11.5

82     16       7  6.9

83     NA     258  9.7

84     NA     295 11.5

85     80     294  8.6

86    108     223  8.0

87     20      81  8.6

88     52      82 12.0

89     82     213  7.4

90     50     275  7.4

91     64     253  7.4

92     59     254  9.2

93     39      83  6.9

94      9      24 13.8

95     16      77  7.4

96     78      NA  6.9

97     35      NA  7.4

98     66      NA  4.6

99    122     255  4.0

100    89     229 10.3

101   110     207  8.0

102    NA     222  8.6

103    NA     137 11.5

104    44     192 11.5

105    28     273 11.5

106    65     157  9.7

107    NA      64 11.5

108    22      71 10.3

109    59      51  6.3

110    23     115  7.4

111    31     244 10.9

112    44     190 10.3

113    21     259 15.5

114     9      36 14.3

115    NA     255 12.6

116    45     212  9.7

117   168     238  3.4

118    73     215  8.0

119    NA     153  5.7

120    76     203  9.7

121   118     225  2.3

122    84     237  6.3

123    85     188  6.3

124    96     167  6.9

125    78     197  5.1

126    73     183  2.8

127    91     189  4.6

128    47      95  7.4

129    32      92 15.5

130    20     252 10.9

131    23     220 10.3

132    21     230 10.9

133    24     259  9.7

134    44     236 14.9

135    21     259 15.5

136    28     238  6.3

137     9      24 10.9

138    13     112 11.5

139    46     237  6.9

140    18     224 13.8

141    13      27 10.3

142    24     238 10.3

143    16     201  8.0

144    13     238 12.6

145    23      14  9.2

146    36     139 10.3

147     7      49 10.3

148    14      20 16.6

149    30     193  6.9

150    NA     145 13.2

151    14     191 14.3

152    18     131  8.0

153    20     223 11.5

【练习3】PPT-05第37页

案例1:求给定向量中的偶数个数

Num <- function(x){

  k=0

  stopifnot(is.numeric(x))

  for(i in x){

    if(i %% 2==0){

      k=k+1

    }

  }

  return(k)

}

Num(1:9)

【练习4】PPT-05第39页

案例1:自编函数计算标准差代码

BZC <- function(x){

  stopifnot(is.numeric(x))

  stopifnot(length(x)>1)

  avg<-mean(x)

  sum=0

  for(i in x){

    sum=sum+(i-avg)**2

  }

  return(sqrt(sum/length(x)))

}

BZC(c(1:5))

函数设计流程:

四:实验知识点总结

0:PPT-05上第29页中【na.rm=FALSE】的作用是——保留数据集中的缺失值,并尝试计算包含这些缺失值的统计量。当na.rm=TRUE时,函数会在计算统计量之前从数据集中删除所有的缺失值。

1:在变量的重命名中,rename函数可修改数据库和列表(不改变原数据集中的变量名),不能修改矩阵;names函数可修改数据库和列表(改变原数据集中的变量名),不能修改矩阵;colnames函数和rownames函数可修改矩阵和数据库的行名和列名。


2:数据排序函数的区别。

3:随机抽样函数的区别。

4:常用的数学函数。

5:常用的统计函数。

6:常用的高级数学函数。

 7:apply家族的使用方法。

8:函数体的组成部分。

五:遇到的问题和解决方法

问题&解决1:reshape2和reshape不是一个依赖包,只载入reshape包而不载入reshape2包,无法调用reshape2中的封装功能。因此,需要看清楚封装功能所来源的依赖包是哪一个,再进行调用。

问题&解决2:如果当前使用的镜像源太卡,会导致install.packages()失败。此时需要使用【chooseCRANmirror()】,并选择新的镜像源,然后再进行依赖包的安装和载入。或者通过例如【options(repos = c(CRAN = "https://cloud.r-project.org/"))】的方式更换。

问题&解决3:PPT中的思考题通过以下网页进行学习。

R语言数据框中的缺失值_na.rm=true什么意思-CSDN博客

https://www.cnblogs.com/chenwenyan/p/16384901.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/467659.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

写一个五子棋小游戏

具体如下&#xff0c;直接来 目录 大致一看 导入模块和初始化 定义棋盘&#xff08;Checkerboard类&#xff09; 定义AI类 游戏主循环&#xff08;main函数&#xff09; 绘图和辅助函数 AI算法解析 完整代码 大致一看 导入模块和初始化 一开始导入了必要的模块&#x…

【边缘智能】Jetson板卡上安装QT5与OpenCV集成

学习《OpenCV应用开发&#xff1a;入门、进阶与工程化实践》一书 做真正的OpenCV开发者&#xff0c;从入门到入职&#xff0c;一步到位&#xff01; 安装QT5与QT Creator 如果只是简单的使用QT的GUI库&#xff0c;没有其它要求&#xff0c;其实特别容易&#xff0c;一行命令行…

【Unity每日一记】unity中的内置宏和条件编译(Unity内置脚本符号)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

【数据结构和算法初阶(C语言)】二叉树的顺序结构--堆的实现/堆排序/topk问题详解---二叉树学习日记②

目录 ​编辑 1.二叉树的顺序结构及实现 1.1 二叉树的顺序结构 2 堆的概念及结构 3 堆的实现 3.1堆的代码定义 3.2堆插入数据 3.3打印堆数据 3.4堆的数据的删除 3.5获取根部数据 3.6判断堆是否为空 3.7 堆的销毁 4.建堆以及堆排序 4.1 升序建大堆&#xff0c;降序建小堆 4.2堆…

RPM与DNF的操作实践

这几课有三个目标&#xff1a; 第一步&#xff1a;先配置软件源 跳转到yum.repos.d目录&#xff0c;用vim创建一个openeuler_x84_64.repo文件。这个文件就是我们将会用到的软件源。 我们在里面添加这些东西&#xff0c;保存并退出即可。 然后&#xff0c;我们用yum list all就…

【CICD】Jenkins 常用操作手册

常见词汇 词汇 说明 Node 作为 Jenkins 环境的一部分并能够执行Pipeline或项目的机器&#xff0c;无论是 Master 还是Agent 都被认为是 Node。 Master 存储配置&#xff0c;加载插件以及为 Jenkins 呈现各种用户界面的主控节点 Agent 通常是一台主机或容器&#xff0c;连…

Hive:数据仓库利器

1. 简介 Hive是一个基于Hadoop的开源数据仓库工具&#xff0c;可以用来存储、查询和分析大规模数据。Hive使用SQL-like的HiveQL语言来查询数据&#xff0c;并将其结果存储在Hadoop的文件系统中。 2. 基本概念 介绍 Hive 的核心概念&#xff0c;例如表、分区、桶、HQL 等。 …

Chrome历史版本下载地址:Google Chrome Older Versions Download (Windows, Linux Mac)

最近升级到最新版本Chrome后发现页面居然显示错乱,是在无语, 打算退回原来的版本, 又发现官方只提供最新的版本下载, 为了解决这个问题所有收集了Chrome历史版本的下载地址分享给大家. Google Chrome Windows version 32-bit VersionSizeDate104.0.5112.10279.68 MB2022-05-30…

TT-100K数据集,YOLO格式

TT-100K数据集YOLO格式&#xff0c;分为train、val和test&#xff0c;其中train中共有6793张图片&#xff0c;val中共有1949张图片&#xff0c;test中共有996张图片。数据集只保留包含图片数超过100的类别。共计46类。

uniapp微信小程序随机生成canvas-id报错?

uniapp微信小程序随机生成canvas-id报错&#xff1f; 文章目录 uniapp微信小程序随机生成canvas-id报错&#xff1f;效果图遇到问题解决 场景&#xff1a; 子组件&#xff0c;在 mounted 绘制 canvas&#xff1b;App、H5端正常显示&#xff0c;微信小程序报错&#xff1b; 效…

信息系统项目管理师019:存储和数据库(2信息技术发展—2.1信息技术及其发展—2.1.3存储和数据库)

文章目录 2.1.3 存储和数据库1.存储技术2.数据结构模型3.常用数据库类型4.数据仓库 记忆要点总结 2.1.3 存储和数据库 1.存储技术 存储分类根据服务器类型分为&#xff1a;封闭系统的存储和开放系统的存储。封闭系统主要指大型机等服务器。开放系统指基于包括麒麟、欧拉、UNIX…

MacBook远程桌面Windows使用Microsoft Remote Desktop for Mac_亲测使用

MacBook远程桌面Windows使用Microsoft Remote Desktop for Mac_亲测使用 像Windows上有自带的远程桌面连接软件.MacBook没有自带的远程连接Windows桌面的工具,需要安装软件来实现. 像远程桌面控制软件一般有 TeamViewer、向日葵远程控制, ToDesk, Microsoft Remote Desktop f…

【ZooKeeper3、Watcher机制

本文基于 Apache ZooKeeper Release 3.7.0 版本书写 作于 2022年5月15日 17:22:11 转载请声明 演示前的ZooKeeper目录状态&#xff0c;只有zookeeper默认目录&#xff1a; 在客户端直接输入 --help 命令&#xff0c;可以看到以下文字&#xff1a; 可以看到 addWatch 命令&am…

视频桥接芯片#LT8912B适用于MIPIDSI转HDMI+LVDS应用方案,提供技术支持。

1. 概述 Lontium LT8912B MIPI DSI 转 LVDS 和 HDMI 桥接器采用单通道 MIPI D-PHY 接收器前端配置&#xff0c;每通道 4 个数据通道&#xff0c;每个数据通道以 1.5Gbps 的速度运行&#xff0c;最大输入带宽高达 6Gbps。 对于屏幕应用&#xff0c;该桥接器可解码 MIPI DSI 18bp…

【QED】斐波那契游戏

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 总结 题目 题目链接&#x1f517; 斐波那契数列指的是这样一个数列&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13&#xff0c;21&#xff0c;34&#xff0c;55&#x…

Docker部署TeamCity来完成内部CI、CD流程

使用TeamCity来完成内部CI、CD流程 本篇教程主要讲解基于容器服务搭建TeamCity服务&#xff0c;并且完成内部项目的CI流程配置。至于完整的DevOps&#xff0c;我们后续独立探讨。 一个简单的CI、CD流程 以下分享一个简单的CI、CD流程&#xff08;仅供参考&#xff09;&#…

C++进阶之路---手撕“红黑树”

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、红黑树的概念与性质 1.概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点…

大数据开发-数据仓库简介

文章目录 什么是数据仓库数据仓库基础知识数据仓库的建模方式数据仓库分层数据仓库的命名规范典型数仓系统架构 什么是数据仓库 数据仓库(Data Warehouse)是一个面向主题的、集成的、稳定的且随时间变化的数据集合&#xff0c;用于支持管理人员的决策 面向主题&#xff1a;类…

怎么做好独立站的SEO优化

随着全球贸易的蓬勃发展&#xff0c;越来越多的企业开始关注外贸市场&#xff0c;并将目光投向了外贸网站。然而&#xff0c;在竞争激烈的外贸市场中&#xff0c;如何写出吸引人的文章&#xff0c;以及如何优化网站以在搜索引擎中脱颖而出&#xff0c;成为了外贸独立网站必须面…

前端 -- 基础 表单标签 -- 表单域

表单域 # 表单域是一个包含 表单元素 的区域 在 HTML 标签中&#xff0c; <form> 标签 用于定义表单域&#xff0c; 以实现用户信息的收集和传递 简单通俗讲&#xff0c; 就是 <form> 会把它范围内的表单元素信息提交给后台&#xff08;服务器) 对于上面讲…