Day 1 R基础
1.setwd
setwd 是用来跳转文件的
注:
setwd 只能向下一级跳转,不可以同级跳转,不可以向上级跳转
1.1 使用方法
setwd("Day1") #Day1 为文件名
2.读写文件
2.1 输出
输出txt文件
write.table(a,"a.txt") # a是要输出的文件,a.txt 是输出后的文件名
输出csv文件
write.csv(a,file="a.csv") # a是要输出的文件,a.csv 是输出后的文件名
图形化界面读取
2.2 读入
读取txt
c <- read.table("x.txt")
读取csv
c <- read.csv("a.csv",row.names=1)
3.数据框行列反转
c <- t(c)
但是反转过后,此时的c就不再是数据框了,可以通过下面操作变为数据框的格式
c <- as.data.frame(c)
4.判断数据类型
class(x)
class还可用于判断数据框的每列的数据类型
$ 符可以提取x 数据框的列名
class(x$'列名') 如果有多行数据,返回第一行的数据类型
class(x$'列名')
5.substr 提取
substr("hello world",1,4)
输出从第一位到第四位
> substr("hello world",1,4) [1] "hell"
6.数据框提取/删除
文件名[行 , 列] 逗号前面代表行,后面代表列
a=x[,1:3] #提取 x 的 1 到 3 列
b=x[1:3,] #提取 x 的 1 到 3 行
c=x[-1,] #删除一行
d=x[,-(2:4)] #删除 2到4 列
e=x[,c(1,3)] #删除 1,3 列
7.创建集合 c()
set <- c("a","b","c")
输出
> set <- c("a","b","c") > set [1] "a" "b" "c"
8.传导符 %>% 快捷键 cltrl+shift+M
从左往右进行传导
x <- x %>% t() as.data.frame()
9.去重复 duplicated函数
> a <- c("a","b","a","b","c")
> duplicated(a)
[1] FALSE FALSE TRUE TRUE FALSE
duplicated 返回集合中的元素是否重复,第一个 a 是不重复的,所以为false,第二个 a 与第一个 a 重复,所以为true
那么我们应该如何去去除集合中的重复元素呢?
!duplicated(a) a <- a[!duplicated(a)] a
输出结果
> !duplicated(a)
[1] TRUE TRUE FALSE FALSE TRUE
> a <- a[!duplicated(a)]
> a
[1] "a" "b" "c"
10.inner_join 合并
10.1 tribble 创建简易数据框
class1 <- tribble(~'名次',~'姓名','第一名','小明','第二名','小红','第三名','小诚'
)class2 <- tribble(~'名次',~'姓名','第一名','张三','第二名','李四','第四名','王五'
)
结果
> class1
# A tibble: 3 × 2名次 姓名 <chr> <chr>
1 第一名 小明
2 第二名 小红
3 第三名 小诚
> class2
# A tibble: 3 × 2名次 姓名 <chr> <chr>
1 第一名 张三
2 第二名 李四
3 第四名 王五
10.2 inner_join,left_join,right_join
inner_join
是将我们要合并的表相同的地方进行合并
inner_join(class1,class2,by='名次')#结果
# A tibble: 2 × 3名次 姓名.x 姓名.y<chr> <chr> <chr>
1 第一名 小明 张三
2 第二名 小红 李四
left_join 类似于Mysql left join ,以左边表为准
left_join(class1,class2,by='名次')#结果
> left_join(class1,class2,by='名次')
# A tibble: 3 × 3名次 姓名.x 姓名.y<chr> <chr> <chr>
1 第一名 小明 张三
2 第二名 小红 李四
3 第三名 小诚 N
right_join ,以右边表为准
right_join(class1,class2,by='名次')#结果
> right_join(class1,class2,by='名次')
# A tibble: 3 × 3名次 姓名.x 姓名.y<chr> <chr> <chr>
1 第一名 小明 张三
2 第二名 小红 李四
3 第四名 NA 王五