基本操作:

查询变量类型(假设变量名是a)

class(a)

在R语言中:

T 代表--> True
F 代表--> False

与、或运算符

读取:

读取csv文件到dataframe(字符串不当作factor类型来处理,csv的na不作处理,不当成NaN对待,原封不动字符串)

df1 <- read.csv("", stringsAsFactors=F, na.strings = NULL)

读取系统库内数据

df1 <- iris

选取行(与一般语言不同,R语言第一行是从序号1开始,而不是序号0):

df1[1:4,]

选取列(假设选取2、3、4列)

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
10-18 04:40