r基础1

向量

a=c(10,20,30,40,50)
a[c(1,2,5)]#取 10 20 50
a[c(-1,-5)] #去掉10 50
a[1:4] #取10 20 30 40
a[2] #取20
sort(a) #排序
rev(a) #倒序

rep(0,5)产生重复出现的数字序列
seq(1,9,2) #等差数列
a[which(a>20 & a<50) ]

as.numeric(“12”) #字符串转换为数字

矩阵、

vector=c(1,2,3,4,5,6)
m1=matrix(vector,2,3,byrow=TRUE)
m1[1,3] #第一行第三列
colnames(m1)=c(“x”,“y”,“z”)
rownames(m1)=c(“a”,“b”)
m1[“a”, ] #第a行
solve(m1)转置

A=m1
apply(A,1,sum)#第二个参数为1按行操作,
apply(A,2,sum)#第二个参数为2按列操作,

if

if( x){ 为真时执行的代码 }
x=50
if (is.integer(x)){print(“X是一个整数”)}

if( x){
为真时执行的代码
}else{为假执行的代码
}

x=c(“a”,“b”,“c”)
if (“a” %in% x){
print(“包含a”)
}else{
print(“不包含a”)
}

x=c(“a”,“b”,“c”)
if (“a” %in% x){
print(“包含a”)
}else if (“b” %in% x){
print(“不包含b”)
}else{
print(“没找到”)
}
switch(3,“a”,“b”,“c”)

循环

repeat{
//代码
if(条件){
break
}
}

v<-LETTERS[1:4]
for (i in v){
print(i)
}

while(condition){
代码
}

v<-c("g","r")
c<-2
while(c<7){
print(v)
c=c+1
}

函数

function_name<-function(arg1,…){函数体}

列表

保存不同类型数据 可以是矩阵 函数
list_data<-list(“a”, c(0,1), 90, matrix(c(1,2,3),nrow=2), list(“a”,2))

#給列元素起名字
names(list_data)<-c(“m”,“n”,“p”)
list_data$m
list_data[3]#访问列表第三个元素

list_data[4]<-“新元素” #添加元素
list_data[4]<-NULL #删除元素
t_data[4]<-“更新元素” #更新元素

l1<-list(1,2)
l2<-list(“a”,“b”)
merged.list<-c(l1,l2) #合并列表

v1<-unlist(l1) #列表转换为向量

矩阵

p<-matrix(c(3:14),nrow=4,byrow=TRUE,
dimnames=list(rownames,colnames))
p[,3] #获取第三列
p[2,] #获取第2行

数组

v1<-c(5,6)
v2<-c(1,2,3,4)
column.names<-c(“c1”,“c2”)
row.names<-c(“r1”,“r2”)
matrix.names<-c(“m1”,“m2”)
arr<-array(c(v1,v2),dim=c(2,2,2),
dimnames=list(row.names,column.names,matrix.names))
arr[3,2] #显示第二个矩阵中第三行的元素
arr[1,2,3]#显示第三个矩阵中第1行第2列元素

#apply计算
r<-apply(arr,c(1),sum) #算所有矩阵第一行的数字之和

数据框

table=data.frame(姓名=c(“c1”,“c2”),月薪=c(222,111))
str(table) #获取数据结构

#提取指定的列
r<-data.frame(table 姓 名 , t a b l e 姓名,table ,table月薪)

#提取前两行
table[1:2,]

#读取第2、3行的第1、2两列
r<-table[c(2,3),c(1,2)]

添加列
table$部门<-c(“运营”,“技术”)

cbind将多个向量合成一个数据框
v1<-c(5,6)
v2<-c(1,2)
table2<-cbind(v1,v2)

合并两个数据框
r<-rbind(table,table2)

数据合并

#inner join
df=merge(x=df1,y=df2,by=“ID”)

#full join
df=merge((x=df1,y=df2,by=“ID”,all=TRUE)

#LEFT join
df=merge((x=df1,y=df2,by=“ID”,all.x=TRUE)

#right join
df=merge((x=df1,y=df2,by=“ID”,all.y=TRUE)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值