Bymunije

3 minute read

1.数据框

1).写文件[writr.table]

write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",eol = "\n", na = "NA", dec = ".", row.names = TRUE,col.names = TRUE, qmethod = c("escape", "double"))

函数Write.table()的选项值及说明:

选项值 说明
x 要写入的对象名
file 文件名(缺省时对象直接被“写”在屏幕上),可添加路径
append 如果为TRUE则在写入数据时不删除目标文件中可能已存在的数据,采取往后添加的方式
quote 一个逻辑型或者数值型向量:如果为TRUE,则字符型变量和因子写在双引号("")中,若quote是数值型向量则代表将欲写在("")中的那些列的列标,如果为FALSE,则字符型变量和因子无双引号
sep 文件中的字段分隔符
eol 使用在每行最后的字符("\n"表示回车)
na 表示确实数据的字符
dec 用来表示小数点的字符
row.names 一个逻辑值,决定行名是否写入文件,或指定要作为行名写入文件的字符型向量
col.names 一个逻辑值(决定列名是否写入文件);或指定一个要作为列名写入文件中的字符向量
qmethod 若quote=TRUE,则此参数用来指定字符型变量中的双引号("")如何处理;若参数值为"escape"(或者"e",缺省)每个"都用"替换,若值为"d",则每个"都用"“替换

2).获取数据框行数

dim(datafram)[1]
nrow(dataframe)
length(dataframe[,1])

2. GeneSymble to ID

  • 数量较少时可使用网站bioDBnet,其中,human对应Taxon ID9606
  • 数量较多时可借助R包org.Hs.eg.db

3.next and break

  • next:跳出当前循环,进入下一次循环
  • break: 结束循环

4.逻辑运算符

  • 与运算:&
  • 或运算:|
  • 非运算:!

5.判断语句

1). if...else

if(boolean expression) {
statement1
} else {
statement2
}

2). if...else if...else

if(boolean expression1) {
statement1
} else if(boolean expression2) {
statement2
} else if(boolean expression3) {
statement3
} else {
statement4
}
  • if语句可以有零个或一个else,但若有else if语句,那么else语句必须在else if语句之后
  • 当有一个else if条件测试成功,其余的else ifelse将不会被测试

函数

1).sample函数: 随机抽样

x <- c(1,3,5,7)
sample(x = x[,size = 7,replace = T,prob=c(0.1,0.3,0.7,0.9)])
  • size:指定在向量中抽取的元素个数,默认是向量中所有的元素个数
  • replace = T: 又放回抽样,默认为无放回抽样
  • prob:每个元素被抽取的概率,且每个概率是独立的即不一定所有的元素概率加起来等于1

2).duplicated函数: 数据去重(数据框或者向量,返回TRUE或者FALSE)

x <- c(9:20, 1:5, 3:7, 0:8)

## extract unique elements
xu <- x[!duplicated(x)]

## similar, same elements but different order:
xu2 <- x[!duplicated(x, fromLast = TRUE)]
  • duplicated(x):建立是否重复的索引,即TRUE/FALSE
  • !:取反得到去重数据,即FALSE为需要数据

3).order/sort/rank函数: 排序

sort(x): 对向量x排序,返回值排序后的数值向量 rank(x): 求秩函数,返回值是向量中对应元素的排名 order(x): 返回值是排序后元素在向量中的位置

x <- c(1,3,6,0,9,5)
order(x)
[1] 4 1 2 6 3 5 
sort(x)
[1] 0 1 3 5 6 9 
rank(x)
[1] 2 3 5 1 6 4
comments powered by Disqus