前言:
而今各位老铁们对“r语言如何统计一个数据框中字符的个数”大约比较着重,各位老铁们都需要知道一些“r语言如何统计一个数据框中字符的个数”的相关资讯。那么小编在网络上搜集了一些关于“r语言如何统计一个数据框中字符的个数””的相关知识,希望兄弟们能喜欢,各位老铁们快快来了解一下吧!在R语言中,数据框(data frame)组织数据的结构与矩阵相似,但是其各列的数据类型可以不相同。一般情况,数据框的每列是一个变量,每行是一个观测样本。虽然,数据框内不同的列可以是不同的数据模式,但是数据框内每列的长度必须相同。
创建数据框
在R语言中,数据框使用data.frame()函数来创建,其格式如下:
data.frame(col1, col2, ..., row.name=NULL, check.rows = FALSE, check.names=TRUE, stringsAsFactors = default.stringsAsFactors())
其中,row.name用于指定各行(样本)的名称,默认没有名称,使用从1开始自增的序列来标识每一行;
check.rows用于用来检查行的名称和数量是否一致,默认为FALSE;
check.names来检查变量(列)的名称是否唯一且符合语法,默认为TRUE;
用来描述是否将字符型向量自动转换为因子,默认转换,若不改变的话使用stringsAsFactors = FALSE来指定即可。
下面用几个例子来说明:
(1)df1 <- data.frame(name = c("王宏", "马兰", "刘涛", "张峰"), sex=c("男", "女", "男", "男"), score=c(90, 85, 82, 93))
(2)df2<-data.frame(name=c("王宏", "马兰", "刘涛", "张峰"), sex=c("男", "女", "男", "男"), score=c(90, 85, 82, 93), row.names=c("s1", "s2", "s3", "s4"))
(3)使用向量定义数据框
name <- c("王宏", "马兰", "刘涛", "张峰") #向量
sex <- c("男", "女", "男", "男") #向量
score <- c(90, 85, 82, 93) #向量
df3<-data.frame(name, sex, score) #使用向量生成数据框
(4)使用列表来定义数据框
lst<-list(name=c("王宏","马兰","刘涛","张峰"), sex=c("男", "女", "男", "男"), score=c(90, 85, 82, 93))
df4<-as.data.frame(lst)
(5)使用数组来定义数据框
arr1 <- array(1:12,c(4,3))
df5 <- as.data.frame(arr1) #使用数组生成数据框
可以看出,数组若没有指定列名,则以"V1","V2”......进行代替。下面再给出一个数组带行名和列名的例子
arr2<- array(1:12, c(4,3), dimnames=list(c("R1", "R2", "R3", "R4"), c("C1","C2","C3")))
df6 <- as.data.frame(arr2)
(6)使用矩阵定义数据框
m1 <- matrix(c(1:12), nr=3)
df7<- as.data.frame(m1)
m2<-matrix(c(1:12), nr=3, dimnames=list(c("R1", "R2", "R3")))
df8<-as.data.frame(m2)
m3<-matrix(c(1:12), nr=3, dimnames = list(c(), c("C1","C2","C3","C4")))
df9<-as.data.frame(m3)
同样,使用矩阵生成数据库时,若没给出矩阵的列名来,默认使用V1,V2,...
数据框的引用
(1)df1["score"] #仍为一个数据框, 也是一个列表
(2)df1[,"score"] #返回的是向量
(3)df1[3] #同(1)
(4)df1[,3] #同(2)
(5)df1[c(1,3)] #返回第1列和第3列的数据
(6)df1[c(1,3),] #返回第1行和第3行的数据
(7)df1[c(1,3),c(2,3)] #返回第1行和第3行与第2列和第3列交叉处的数据
(8)df1$name #以因子的形式返回name列
(9)df1[["name"]] #以因子的形式返回name列
(10)df1[[1]][1] #返回第1分量的第一个元素值,王宏
(11)df1[['name']][1] #返回name分量第一个元素值:王宏
(12)df1$name[1] #返回name分量第一个元素值:王宏
数据框的修改
(1)增加样本数据或变量
可以使用rbind()函数和cbind()函数将新行或新列添加到数据框变量中。
lst1<-list(name="马宇",sex="男",score=92) #创建一个新列表
df1<-rbind(df1, as.data.frame(lst1)) #将列表lst1添加到df1中
lst2<-list(height=c(170,178,185,190,178,175)) #创建一个新列表,保存身高
df1<-cbind(df1,lst2) #使用cbind将lst2添加到df1中
(2)修改某列的某一个值
df1$name[1] <- "王宏伟" #将王宏的值修改为王宏伟
df1[1,2] <- "女" #将第一行第2列的值修改为“女”
df1[[1]][2]<-"马兰兰" #将第一列第二个值改为“马兰兰”
在上面这种操作情况下,在创建数据框时,需要将参数stringsAsFactors指定为FALSE,否则会报错。
(3)删除行或列
df1<-df1[-2,] #删除第2行数据
df1<-df1[,-3] #删除第3列的数据
df1<-df1[-c(1,3),] #删除第1行和第3行的数据
df1<-df1[,-c(1,4)] #删除第1列和第4列的数据
从这个结果来看,如果删除的列不存在,R不会报错。
欢迎关注本号,本号近期将持续更新R语言方面的文章,内容从简入深,从基本语法到具体的数据分析应用。如你喜欢,请关注,请点赞。
标签: #r语言如何统计一个数据框中字符的个数