r语言 第8天167页

xiaoxiao2021-02-28  29

1  数据是由行组成的,集合数据成为数据框

   可以,将每个行数据存到一行的数据框,将一行的数据框存为一个list。

   用rbind     do.call      

  > dfrm <- do.call(rbind, obs)    obs是一个list,包含一行的数据框的数据

2  如果是几个list ,又连接成一个list,要转化为数据框,可以如下操作

    dfm  <-  do.call( rbind, Map(as.data.frame , objs) )

注意: 如果对于几个list ,又连接成一个list,对其使用do.call(rbind, obs),生成的依然是list

3  添加一行或者多行数据到dataframe

   先创建一个新的dataframe来存这些行数据,然后用rbind() 来合起来

   rbind 是告诉R 添加一个新行,而不是一个新的行

   cbind  是添加一个新的列

4  不要对大型数据框,多次使用添加。这回让R反复重新分配数据结构,很慢

5  重新分配dataframe

> N <- 1000000 

> dfrm <- data.frame(dosage=numeric(N), lab=character(N), response=numeric(N)) 

6 dataframe列的寻找

dfrm[n]    或者       dfrm[c(n1,n2,,,)]   返回dataframe

dfrm[[n]]  返回第几列 ,不是dataframe,是vector

dfrm[, n]    第几列

dfrm[, c(n1, n2, ..., nk)]    多个列

7  通过name查找dataframe

dfrm[["name"]] 

dfrm$name       返回vector

dfrm["name"] 

dfrm[c("name1", "name2", ..., "namek")]    返回dataframe

dfrm[, "name"] 

dfrm[, c("name1", "name2", ..., "namek")]         返回vector

8  简易获取行或列   用subset函数    返回dataframe

> subset(dfrm, select=colname) 

> subset(dfrm, select=c(colname1, ..., colnameN)) 

9 修改行列的名字

> colnames(dfrm) <- newnames          # newnames is a vector of character strings 

> as.data.frame(mat)  转换为dataframe

10  list的转换

> dfrm <- as.data.frame(lst) 

> colnames(dfrm) <- c("before","treatment","after") 

11 编辑dataframe   用edit()

在界面生成一个表格,可以用于修改数据

     也可以用fix()   ,  但是是直接修改,不可以恢复了就、

12  消除NA     用na.omit ()   

注意:将会移除包含NA的一整行,而不是仅仅移除NA值

13   在dataframe中删除列

> subset(dfrm, select = -badboy)          # All columns except badboy

删除了 badboy列

14  合并两个dataframe, 使用cbind()函数   或者  rbind 函数

rbind要求列的数目和name一样

15   也可以用merge()

> m <- merge(df1, df2, by="name") 

16  简单地获取dataframe数据

> with(dataframe, expr) 

> z <- (suburbs$pop - mean(suburbs$pop)) / sd(suburbs$pop) 等价于

> z <- with(suburbs, (pop - mean(pop)) / sd(pop))

17  attach()  和 detach()  分别将dataframe载入本地,即可以直接使用dataframe中的数据,和删除本地

18 转换类型   转换失败得到NA

• as.character(x) 

• as.complex(x) 

• as.numeric(x) or as.double(x) 

• as.integer(x) 

• as.logical(x) 

19  转换数据类型

• as.data.frame(x) 

• as.list(x) 

• as.matrix(x) 

• as.vector(x) 

细节请看164---165页

转载请注明原文地址: https://www.6miu.com/read-1600189.html

最新回复(0)