昨天刚好把“R中的数据、逻辑和函数”这块儿空出来了,今天填进去✌
今日份思维导图:
day5 R语言-数据结构
实操过程
-
给向量赋值&从向量中提取元素
x<- c(1,2,3) #常用的向量写法,意为将x定义为由元素1,2,3组成的向量。 y<- 1:10 #从1-10之间所有的整数 z<- seq(1,10,by = 0.5) #1-10之间每隔0.5取一个数(注意是逗号不是分号) r<- rep(1:3,times=2)#1-3 重复2次 ls() [1] "myPaths" "r" "x" "y" "z" x [1] 1 2 3 y [1] 1 2 3 4 5 6 7 8 9 10 z [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 [17] 9.0 9.5 10.0 r [1] 1 2 3 1 2 3 x[-1] #排除法,除了第1个元素之外剩余的元素 [1] 2 3 y[2:4] #第2到4个元素 [1] 2 3 4 r[-(1:3)] #除了第1-3个元素 [1] 1 2 3 z[c(1,10)] #第1个和第10个元素 [1] 1.0 5.5 x[x %in% c(1,2,5)] #存在于向量c(1,2,5)中的元素 [1] 1 2 z[z<2] [1] 1.0 1.5 y[y==1] [1] 1
-
数据框
read.csv
,用于读取“comma separated value”文件。它以 DataFrame 的形式导入数据。相关参数:
file:包含要导入到 R 中的数据的文件的路径。
header:逻辑值。如果为 TRUE,则 read.csv() 假定您的文件具有标题行,因此第 1 行是每列的名称。如果不是这种情况,您可以添加参数 header = FALSE。
sep:字段分隔符
dec:文件中用于小数点的字符。
read.table
,用于从文本文件中读取数据。它以表格的形式返回数据。相关参数 :
header:表示文件是否包含标题行
sep:表示文件中使用的分隔符值
#数据框部分的操作,先在工作目录下新建qingnan.txt,并输入示例数据
X<-read.csv('qingnan.txt')
colnames(X)#查看列名
[1] "X1" "X2"
rownames(X) #查看行名
[1] "1" "2" "3" "4" "5"
read.table(file = "huahua.txt",sep = "\t",header =T) #从文本文件中读取数据,以表格的形式返回数据。
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改为逗号,字符串不加双引号(默认格式带由双引号)
# 导出数据框之后可以在工作目录下找到一个新的yu.txt,
# 提取数据框中的元素(与提取向量中的元素大同小异,这里只记录了一下花花@生信星球总结的一些常用提取,没有实操。)
X[x,y] #第x行第y列
X[x,] #第x行
X[,y] #第y列
X[y] #也是第y列
X[a:b] #第a列到第b列
X[c(a,b)] #第a列和第b列
X$列名 #也可以提取列(优秀写法,而且这个命令还优秀到不用写括号的地步,并且支持Tab自动补全哦,不过只能提取一列——补充:列名里带上循环是不是就可以提取多列了??)
- 直接使用数据框中的变量:指定数据框,制定行、列,可以直接画散点图
plot(iris$Sepal.Length,iris$Sepal.Width)
-
问题:
save(X,file="test.RData")
这句代码如果报错object X not found
,是为什么,应该怎么解决?
答:object X not found
应该是因为 X 没有被定义/赋值,可能是之前定义过后删掉了,也有可能是大小写搞错了之类的,找到自己以为是 X 的那个向量或者数据框,检查一下它的名称、赋值,改好了再保存就行。补充,关于 save 函数的说明:
如图,save函数可以将R对象的外部表示法写到指定的文件中,之后,可以通过load或attach(或data)从文件中读取这些对象。相关参数:- list: 一个包含要保存的对象名称的字符向量。
- file: 连接或保存数据的文件的名称。必须是保存的文件名。
- ascii: ASCII码,默认FALSE。
- envir: 寻找要保存的对象的环境。
- compress: 逻辑或字符串指定是否保存到指定文件是使用压缩。TRUE对应于gzip压缩,而字符串“gzip”、“bzip2”或“xz”指定压缩的类型。当文件是连接和工作空间格式版本时忽略
- save.image 只是“保存我当前工作空间”的捷径。
(作者:谢俊飞,链接://www.greatytc.com/p/6d701d789ab2)
save 函数