龙空技术网

R语言实战自学笔记-数据框1

zjh9280 43

前言:

眼前朋友们对“r语言如何统计一个数据框中字符的个数”大概比较注重,咱们都想要剖析一些“r语言如何统计一个数据框中字符的个数”的相关资讯。那么小编也在网摘上汇集了一些对于“r语言如何统计一个数据框中字符的个数””的相关文章,希望姐妹们能喜欢,咱们快快来了解一下吧!

2.2.4 数据框

数据框(data.frame)是R中最常处理的数据结构。

函数:data.frame(col1,col2,col3,….,row.name=NULL, check.rows = FALSE, check.names=TRUE, stringsAsFactors = default.stringsAsFactors())

其中的列向量col1, col2, col3,…可为任何类型(如字符型、数值型或逻辑型)。每一列的 名称可由函数names指定。row.name用于指定各行(样本)的名称,默认没有名称,使用从1开始自增的序列来标识每一行;check.rows用于用来检查行的名称和数量是否一致,默认为FALSE;check.names来检查变量(列)的名称是否唯一且符合语法,默认为TRUE;stringsAsFactors用来描述是否将字符型向量自动转换为因子,默认转换,若不改变的话使用stringsAsFactors = FALSE来指定即可。 每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。

1.创建数据框

A <- data.frame(name = c("one", "two", "three", "four", "five", "six", "seven", "eight"), values = c(1, 2, 3, 4, 5, 6, 7, 8), values2 = c(8, 7, 6, 5, 4, 3, 2, 1), row.names = c("r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8")) # 使用data.frame函数创建数据框A,行名定义为r1到r8。A # 显示结果A。
##     name values values2## r1   one      1       8## r2   two      2       7## r3 three      3       6## r4  four      4       5## r5  five      5       4## r6   six      6       3## r7 seven      7       2## r8 eight      8       1
name <- c("one", "two", "three", "four", "five", "six", "seven", "eight") # 构建字符型向量name。values <- c(1, 2, 3, 4, 5, 6, 7, 8) # 构建数值型向量values。values2 <- c(8, 7, 6, 5, 4, 3, 2, 1) # 构建数值型向量values2。A <- data.frame(name, values, values2, row.names = c("r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8")) # 创建数据框A。A # 显示结果A。
##     name values values2## r1   one      1       8## r2   two      2       7## r3 three      3       6## r4  four      4       5## r5  five      5       4## r6   six      6       3## r7 seven      7       2## r8 eight      8       1
2.数据框索引

R语言的下标索引是从1开始的,且下标索引为负数的话表示删除某个元素,[行下标, 列下标]

A[4,] # 返回数据框A第4行。
##    name values values2## r4 four      4       5
A[,2] # 返回数据框A第2列。
## [1] 1 2 3 4 5 6 7 8
A[4,1] # 返回数据框A第4行,第1列。
## [1] "four"
A[1:4,] # 返回数据框A第1至第4行。
##     name values values2## r1   one      1       8## r2   two      2       7## r3 three      3       6## r4  four      4       5
A[,1:2] # 返回数据框A第1至第2列。
##     name values## r1   one      1## r2   two      2## r3 three      3## r4  four      4## r5  five      5## r6   six      6## r7 seven      7## r8 eight      8
A[c(1,4),c(1,3)] # 返回数据框A第1和第4行,第1和第3列的数据。
##    name values2## r1  one       8## r4 four       5
A$values # 返回数据框第2列。$符可以选取数据框中的某列,$前是数据框名,$后是列名。
## [1] 1 2 3 4 5 6 7 8
A[,-3] # 提取第3列以外的其他数据。
##     name values## r1   one      1## r2   two      2## r3 three      3## r4  four      4## r5  five      5## r6   six      6## r7 seven      7## r8 eight      8
A[4,"name"] # 通过指定列名,返回到具体值。
## [1] "four"
A[2] # 直接得到一个新的数据框,仅包含原数据框A的第2列。[]中输入想要得到的列号就可以。
##    values## r1      1## r2      2## r3      3## r4      4## r5      5## r6      6## r7      7## r8      8
A[[2]] # 访问第2列。
## [1] 1 2 3 4 5 6 7 8
A[c(1,2)] # 得到新数据框,数据框含原数据框A的列1和列2。
##     name values## r1   one      1## r2   two      2## r3 three      3## r4  four      4## r5  five      5## r6   six      6## r7 seven      7## r8 eight      8
A[which(A$values < 4),] # 返回数据框values列小于4的数据,which可以输入<,>等其他条件。
##     name values values2## r1   one      1       8## r2   two      2       7## r3 three      3       6
A[which(A$values < 4),"name"] # 返回name列中符合条件为values列中小于4的数据。
## [1] "one"   "two"   "three"
A[which(A$values < 2 | A$values > 6),] # 返回数据框A中values小于2或大于6的数据。
##     name values values2## r1   one      1       8## r7 seven      7       2## r8 eight      8       1
A[which(A$values > 4 & A$values < 6),] # 返回数据框A中values大于4与小于6的数据。
##    name values values2## r5 five      5       4
A[-which(A$values > 4 & A$values < 6),] # 返回数据框A中values列大于4,小于6以外的数据,相对于上列进行了条件反转。
##     name values values2## r1   one      1       8## r2   two      2       7## r3 three      3       6## r4  four      4       5## r6   six      6       3## r7 seven      7       2## r8 eight      8       1

attach、detach和with()

函数attach()可将数据框添加到R的搜索路径中。

函数detach()将数据框从搜索路径中移除。

函数attach()和detach()最好在你分析一个单独的数据框,并且不太可能有多个同名对象时使用。

with()就是把所有操作都限制在数据框上。

attach(A) # 将数据框A加入搜索路径。
## The following objects are masked _by_ .GlobalEnv:## ##     name, values, values2
values # 显示数据框A中的values列。可以看出调用values列可以直接在程序中输入列名values,而不用再输入A$values。detach是与attach相反的操作。
## [1] 1 2 3 4 5 6 7 8
A1 <- data.frame(name = c("n1", "n2", "n3", "n4", "n5", "n6", "n7", "n8"), values = c(2, 1, 4, 3, 6, 5, 8, 7), values2 = c(2, 3, 5, 2, 4, 4, 6, 5)) # 创建数据框A1。A1 # 显示数据框A1。
##   name values values2## 1   n1      2       2## 2   n2      1       3## 3   n3      4       5## 4   n4      3       2## 5   n5      6       4## 6   n6      5       4## 7   n7      8       6## 8   n8      7       5
with(A1, {plot(values, values2)}) # 虽然数据框A和A1有相同的列名称,但是这里用with函数后,{}中只调用数据框A1中的values和values2。
with(A1, {name1 <<- name}) # 想在with函数中对全局的变量进行赋值,那么需要使用<<-运算符。name1 # 显示name1。
## [1] "n1" "n2" "n3" "n4" "n5" "n6" "n7" "n8"
3.查看数据框
head(A) # 查看数据前6行。
##     name values values2## r1   one      1       8## r2   two      2       7## r3 three      3       6## r4  four      4       5## r5  five      5       4## r6   six      6       3
head(A, 3) # 查看数据框A前3行数据。
##     name values values2## r1   one      1       8## r2   two      2       7## r3 three      3       6
tail(A) # 查看数据后6行。
##     name values values2## r3 three      3       6## r4  four      4       5## r5  five      5       4## r6   six      6       3## r7 seven      7       2## r8 eight      8       1
tail(A, 5) # 查看数据后5行。
##     name values values2## r4  four      4       5## r5  five      5       4## r6   six      6       3## r7 seven      7       2## r8 eight      8       1
print(A) # 查看数据框A。
##     name values values2## r1   one      1       8## r2   two      2       7## r3 three      3       6## r4  four      4       5## r5  five      5       4## r6   six      6       3## r7 seven      7       2## r8 eight      8       1
A # 也可以直接输入数据框名称查看数据。也可以在R studio种的环境界面直接点击A查看。
##     name values values2## r1   one      1       8## r2   two      2       7## r3 three      3       6## r4  four      4       5## r5  five      5       4## r6   six      6       3## r7 seven      7       2## r8 eight      8       1
length(A[,1]) # 查看数据框行数量。
## [1] 8
length(A[1,]) # 查看数据框列数量。
## [1] 3
length(A$name) # 查看数据框A中列name的数量。
## [1] 8
colnames(A) # 查看数据框列名。
## [1] "name"    "values"  "values2"
rownames(A) # 查看数据框行名。
## [1] "r1" "r2" "r3" "r4" "r5" "r6" "r7" "r8"
dim(A) # 显示数据框A的维度。8行,3列。
## [1] 8 3
str(A) # 查看数据框A的数据结构。
## 'data.frame':    8 obs. of  3 variables:##  $ name   : chr  "one" "two" "three" "four" ...##  $ values : num  1 2 3 4 5 6 7 8##  $ values2: num  8 7 6 5 4 3 2 1
class(A) # 查看数据框类型。
## [1] "data.frame"
class(A$values) #查看数据框列的类型。
## [1] "numeric"
mode(A$name) # 显示数据框A中name列的模式。
## [1] "character"
summary(A) # 数据框基本描述性统计。
##      name               values        values2    ##  Length:8           Min.   :1.00   Min.   :1.00  ##  Class :character   1st Qu.:2.75   1st Qu.:2.75  ##  Mode  :character   Median :4.50   Median :4.50  ##                     Mean   :4.50   Mean   :4.50  ##                     3rd Qu.:6.25   3rd Qu.:6.25  ##                     Max.   :8.00   Max.   :8.00
duplicated(A$values) # 查询数据框A中values列是否有重复数据,若有会返回TRUE,若无,返回FLASE。
## [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

标签: #r语言如何统计一个数据框中字符的个数