您的位置:首页 > 其它

R语言学习

2015-06-10 19:15 337 查看
sd计算样本的标准差

var计算样本的方差

cor计算两个变量间的相关系数

cov计算两变量间的协方差

使用函数library或者函数require把需要的R包载入R中:

library函数中的R包名不需要用双引号括起来。

detach(package:MASS)函数会卸载当前已载入的R包。

调用其他R包中的数据集,使用data函数并给出数据集名称和包名称

data(dsname, package="pkgname")

print函数对向量进行一致的格式化:先找到格式化最小数值所必须的位数,然后把所有数据格式化为相同的宽度。

cat("The answer is", 3, "\n", file="out.txt")

con <- file("out.txt", "w")

cat(data, file=con)

cat(results, file=con)

cat(conclusion, file=con)

close(con)

read.fwf("filename", widths=c(w1,w2,...,wn))

向量是同性质的,有一个名称(names)属性。

列表是非同性质的。

向量有一个属性称为维数dim.其初始值为NULL。

一个数据框实际上是一个列表:

数据框的列必须命名。

dfrm[i], dfrm[[i]],dfrm$name

dfrm[i,j] dfrm[i,] dfrm[,j]

有一个字符串向量或整数向量。需要R将它们视为一个因子,R的术语将其叫做分类变量

每一个分类变量的可能值称为一个水平。一个由水平值构成的向量叫做因子。

lst <- list()

lst$far.left <- 0.023

lst$left <- 0.159

lst$mid <- 0.500

lst$right <- 0.841

lst$far.right <- 0.977

values <- pnorm(-2:2)

names <- c("far.left", "left", "mid", "right", "far.right")

lst <- list()

lst[names] <- values

将NULL赋给要移除的元素,R会将该元素从列表中移除

unlist将列表转换为向量

假设lst是一部分元素为NULL的列表:

lst[sapply(lst, is.null)] <- NULL 移除NULL元素

lst[lst <0] <- NULL 移除所有负值

可以通过一个逻辑向量索引列表,无论什么情况只要向量元素为TRUE,它相应的列表元素就可以选定。其次,可以通过把NULL赋值给一个列表元素的方法来移除它。

mods[sapply(mods, function(m) summary(m)$r.squared < 0.3)] <- NULL

矩阵是逐列而非逐行填充的

mat <- matrix(c(1.1,1.2,1.3,2.1,2.2,2.3), 2,3,byrow=TRUE)

t(A) 矩阵的转置

solve(A) 矩阵求逆

A %*% B 矩阵A与矩阵B相乘

diag(n) 一个n阶对角矩阵

每个矩阵都有一个rownames和colnames属性

vec <- mat[1,] 第一行

vec <- mat[,3]第三列

row <- mat[1,,drop=FALSE]

给数据框添加一行或更多新行

newRow <- data.frame(city="West Dundee", country="Kane", state="IL", pop=5428)

suburbs <- rbind(suburbs, newRow)

suburbs <- rbind(suburbs, data.frame(city="West Dundee", county="Kane", state="IL", pop=5428))

dfrm是一个数据框

dfrm[
]返回一列

dfrm[,vec,drop=FALSE]

dfrm <- as.data.frame(mat)

colnames(dfrm) <- c("before", "treatment", "after")

clean <- na.omit(dfrm)

z <- with(suburbs, (pop-mean(pop)))/sd(pop)

as.character(x)

as.complex(x)

as.numeric(x) or as.double(x)

as.integer(x)

as.logical(x)

results <- apply(mat, 1, fun) 第二个参数设为1,表明逐行来应用一个函数。

result <- apply(mat, 2, fun) 第二个参数为2,表明逐列应用该函数。

lst <- lapply(dfrm, fun) 把函数应用于数据框的连续列,返回值存储到一个列表

vec <- sapply(dfrn, fun) 返回值存储到一个向量。

runif(1)

binom 二项分布

geom 几何分布

hyper 超几何分布

pois 泊松分布

annova(m)

给出方差分析表

coefficients(m) coef(m)

给出模型系数

confint(m) 给出回归系数的置信区间

deviance(m) 给出残差平方和

letters(1:30)

which.max(a)

which(a==2)

a[which.max(a)]

which(a>5)

a[which(a>5)]

rev(a) //把向量颠倒

sort(a) //把向量排序

a1=c(1:12)

matrix(a1, nrow=3, ncol=4)

matrix(a1, nrow=3, ncol=4, byrow=T)

矩阵的运算

t(a1) //转置

a+b

a-b

a %*% b

a=matrix(1:16, 4, 4)

diag(a)

diag(diag(a))

diag(4) //4代表维数

solve(a) //逆矩阵

solve(a,b) //解方程组,ax=b

eigen() //求特征值

a=diag(4)+1

a.e=eigen(a, symmetric=T)

a.e

a.e$vectors%*%diag(a.e$values)%*%t(a.e$vectors)

x=c(1:6)

is.vector(x)

dim(x) <- c(2,3)

is.array(x)

is.matrix(x)

data.frame(x1,x2)

w <- read.table("test.txt", header=T)

mean(x) colMeans(x) colMeans(x)[c("x1","x2","x3")]

apply(x, 2, mean)

apply(x[c("x1","x2","x3")], 1, sum)

which.max(apply(x[c("x1", "x2", "x3")], 1, sum))

x$num[which.max(apply(x[c("x1","x2","x3")], 1, sum))]

table(x$x1)

barplot(table(x$x1))

pie(table(x$x1))

boxplot(x$x1, x$x2, x$x3)

boxplot(x[2:4], col=c("red", "green", "blue"), notch=T)

boxplot(x[2:4], col=c("red", "green", "blue"), horizontal=T)

QQ图

plot(x$x1, x$x2, main="数学分析与线性代数成绩的关系",xlab="数学分析",ylab="线性代数",xlim=c(0,100),ylim=c(0,100), xaxs="i", yaxs="i", col="red", pch=19)

plot(a, b, type='l')

lines(rain$NewYork, type='l', col="blue", lwd=2)

plot(density(rnorm(100)))

类别(名义型)变量和有序类别(有序型)变量在R中称为因子。

函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1...k](其中k是名义型变量中唯一值的个数),同时一个字符串(原始值)组成的内部向量将映射到这些整数上。

要表示有序型变量,需要为factor()指定参数ordered=TRUE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: