基本操做:数据结构
查询变量类型(假设变量名是a)app
class(a)
在R语言中:函数
T 表明--> True
F 表明--> Falsescala
与、或运算符code
读取:ci
读取csv文件到dataframe(字符串不看成factor类型来处理,csv的na不做处理,不当成NaN对待,原封不动字符串)字符串
df1 <- read.csv("", stringsAsFactors=F, na.strings = NULL)
读取系统库内数据string
df1 <- iris
选取行(与通常语言不一样,R语言第一行是从序号1开始,而不是序号0):io
df1[1:4,]
选取列(假设选取二、三、4列)function
df1[,2:4]
按照列名选取
df1[1:3,c("Sepal.Length", "Sepal.Width")]
把相应条件的列选取出来:
df1[df1$Sepal.Length > 7, ] df1[df1$Sepal.Length > 7 & df1$Sepal.Width < 3, ]
对某列数据结构转换:
df1$Species = as.character(df1$Species) # 若是不对字符串列进行转换,或者读取csv的时候字符串读成了factor,会报warning # Warning message: # In `[<-.factor`(`*tmp*`, ri, value = "adsf") : 因子层次有错,产生了NA
条件查找并遍历:
for (i in which(df$Sepal.Length > 7)){ print(df[i,]) }
对行或列进行apply操做:
1是行,2是列 apply(df, 1, function(x){x} )
对df进行groupby操做,并对每一个group应用函数:
by(df, list(df$Species), FUN=function(x){ # do something })
应用包library(dplyr)后的功能:
要重命名列的话
df1 <- rename(df1, tmp_new=col_old)
建立新列:
df %>% mutate(tmp="tmp") mutate(df, tmp="tmp")
join操做:(两个df有不同的列时,by部分能够填写=表达式。最后剩下左边这一列)
left_join(df1, df2, by=c("dfcol1"="dfcol2", "dfs.sef", "wef.wef"))
lapply操做(对list的apply操做,例如查看列名和类型)
ll <- lapply(df, class) for(i in ll){ print(i) }
技巧性特殊操做:
c("a", "b", "c") %in% c("a", "b") [1] TRUE TRUE FALSE