分享:刘绵宇
$表示从一个dataframe中取出某一列数据
@是从R的类实例里面读取数据,
bg=x@colors$bg.col就是从对象实例x中取出colors,而这个colors本身又是个dataframe,所以需要进一步用$读取bg.col列。
!表示 “与、或、非” 中的 “非” 的意思
pheno_dt[!is.na(M2BW)] 表示在pheno_dt 这个数据集中 M2BW一列不为 "NA" 的个体。
NAN
“Not a Number”的缩写,非数值,NaN参与运算时返回NaN。
a <- 0/0
a
#[1] NaN
a+1
#[1] NaN
NA
“Not available”的缩写,NA表示缺失值,NA参与运算时返回NA。
a <- c(1,2,3,6)
a
#[1] 1 2 3 6
b <- a[5]
b
#[1] NA
b+1
#[1] NA
length(b)
#[1] 1
NULL
表示不存在,empty,一般不参与运算。
c <- NULL
c
#NULL
c+1
#numeric(0)
length(c)
#[1] 0
%>% (data.table包中)
选择多个值:
选择在这一列中包含value1或value2的所有值
> DT[column %in% c("value1","value2")]
选择V2这列中包含值A或C的所有行
> DT[ V2 %in% c("A","C")]
V1 V2 V3 V4
1: 1 A 0.3408 1
2: 2 A -0.7460 4
3: 1 A -0.3795 7
4: 2 A -0.7033 10
5: 1 C -0.3795 3
6: 2 C -0.7033 6
7: 1 C 0.3408 9
8: 2 C -0.7460 12
%in%
匹配符号,判断“%in%”符号前面向量中的元素是否在“%in%”后面向量中存在,是match()函数等价方式。
#判断前面一个向量内的元素是否在后面一个向量中,返回布尔值。
a <- c(1,2,3,6)
b <- c(1,5,3,4,1)
a %in% b
# 返回内容
# [1] TRUE FALSE TRUE FALSE
:
“冒号”用于以向量形式生成公差为1的等差数列。
d <- 2:6
d
#[1] 2 3 4 5 6
[]
主要用于提取、筛选、替换向量、数据框、矩阵等对象的数据,功能非常强大。
#提取共有元素;
a <- c(1,2,3,6)
b <- c(1,5,3,4,1)
a[a %in% b]
#[1] 1 3
#筛选数据;
b <- b[1:4]
b
#[1] 1 5 3 4
a[a>2]
#[1] 3 6
#替换数据;
a[a>2] <- 7
a
#[1] 1 2 7 7
#创建数据框;
df <- data.frame(a,b)
df
# a b
# 1 1 1
# 2 2 5
# 3 7 3
# 4 7 4
#按索引提取数据;
df[1,]
#得到数据框;
# a b
# 1 1 1
df[2]
#得到数据框;
# b
# 1 1
# 2 5
# 3 3
# 4 4
df["b"]
#得到数据框;
# b
# 1 1
# 2 5
# 3 3
# 4 4
df[,2]
#得到向量;
#[1] 1 5 3 4
df[,"b"]
#得到向量;
#[1] 1 5 3 4
#行列名称与索引混合使用;
df[2,"b"]
#[1] 5