命令行调用: R CMD BATCH some.R
R向量的元素索引下标:从1开始,而非0
打印元素:str(hn)
seq函数示例:example(seq)
把向量转换成矩阵:matrix(somec, ncol=2)
对向量x的每一个元素调用函数f,并将结果转化为矩阵(每个元素结果为1列): sapply(somec, f)
NULL表示不存在,不计数;NA表示缺值,但占了坑,会计数
筛选向量x[ x > 3]
,其中筛选条件 x>3 也是个与 x 等长的向量
subset(x, x>3) 与上者的差别是,subset会自动移除NA
2.9.1 向量函数组合简化编程 udcoor <- function(x, y) mean(sign(diff(x)) == sign(diff(y)))
2.12 注意 c(5,2, list(a=1, b=4)) 混用的后果是,扁平化
矩阵筛选行: m[m[,1] > 1 & m[,2] > 5, ]
& 是向量与,&&是标量与
apply(x, 1, somefunc, 3) : 对x的每行元素r,调用 somefunc(r, 3)
snow包的clusterApply支持多节点并行计算
禁止矩阵单行向量自动降维:r <- z[2,, drop=FALSE]
向量元素都是同类型的,列表元素可以是不同类型的
lst[["c"]] 是提取列表的单个组件,不能有多个组件 lst["c"] 是提取子列表,可以有多个组件,如 lst[1:2]
删除列表元素 : z$b <- NULL
lapply(lst, mean) 对列表的每个组件调用指定函数,返回一个新列表
sapply(lst, mean) 对列表的每个组件调用指定函数,将结果转化为矩阵或向量
用recursive=T把列表压平 c(list(a =1 , b=2, c=list(d=5,e=9)), recursive=T)
数据框是组件长度都相等的列表
提取出d4中各列都不含NA的所有行:d5 <- d4[complete.cases(d4), ]
文本分析永远不适合内心脆弱的人
按(d$gender, d$over25)将d$income分组,然后计算均值:
tapply(d$income, list(d$gender, d$over25), mean)
by与tapply功能类似,但是tapply第一个参数得是向量,by可以传入数据框
by(aba, aba$Gender, function(m) lm(m[,2] ~m[,3]))
按(d$gender, d$over25)将d$income分组:split(d$income, list(d$gender, d$over25))
对指定多个列,按指定的相同分组方式,调用tapply :
aggregate(aba[,-1], list(aba$Gender), median)
确定向量x的每个元素落到向量b的第几个区间:cut(x, b, labels=F)
取回指定名字的变量内容: z <- get(m)
for循环的返回值是NULL
没有评论:
发表评论