R语言备忘录
Posted 无安书
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言备忘录相关的知识,希望对你有一定的参考价值。
大概这次的内容,是今后将会持续更新的。备忘录,仅仅是为了把一些细节性的函数以及代码使用方法,阐述清楚,仅此而已。
关于数据创建:
事实上,c() 函数的方法最为普遍,这也是目前最主要的创建方式。但我们往往会忽略一个问题:如何创建指定长度以及指定数据类型的变量?
> a <- vector('integer',5)
> a
[1] 0 0 0 0 0
这个问题,vector() 函数已经给出了明确的答案。只不过,正常情况下使用较少。并且,提前指定变量中数据储存内容,在 R 语言的世界中,已经变得不那么重要了。
另一个经典的函数:
> numeric(5)
[1] 0 0 0 0 0
相对而言,后者更实用,更简便。
而提前创建:matrix ,则需要:
> matrix(0,nrow = 5,ncol = 3)
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 0 0 0
[3,] 0 0 0
[4,] 0 0 0
[5,] 0 0 0
以及 list:
b <- list()
b[1] <- 4
b[[2]] <- 'f'
#--------------------------
b1 <- vector('list',5)
list 的创建方式,主要见于以上两种。前者无法指定长度,后者,常用于提前指定长度。
> d <- data.frame()
> d
data frame with 0 columns and 0 rows
事实上,可以创建空的数据框!但这并不实用。
通常,会利用填充的 matrix 或者是 list 来转为 data.frame, 这一步非常重要,在之前的 正交实验数据处理的方法设计中,有所应用。
关于横向创建数据:
tribble(~x, ~m, ~l,
'a',3, 6,
'b',7, 8,
'd',7,0)
tibble 包的 tribble() 函数,提供了横向创建数据的方法,第一行确定列名称,之后的部分则更像在表格中输入数据。
而传统函数中:
"
x m l
a 3 6
b 7 8
d 7 0
" %>% read.table(text = .,header = T) -> d2
查看各列的数据类型:
> str(d2)
'data.frame': 3 obs. of 3 variables:
$ x: chr "a" "b" "d"
$ m: int 3 7 7
$ l: int 6 8 0
事实上,还可以通过添加:colClasses 参数来控制各列的类型。见于:《》 类似的, scan() 也可以读取字符串类型,来生成变量。
事实上上述的方式,多用于替代读取粘贴板信息。对于代码重复运行而言,读取粘贴板信息,是一个无法重复运行的操作。特别是:scan(), read.delim() 多用于读取粘贴板信息,但这一步无法继续被多次重复运行,一旦粘贴板上信息改变,就会造成代码重复运行后出错。
因此,对于代码重复运行操作而言,必须规避:
1/ 读取粘贴板操作
2/ 选择文件时,使用:file.choose()
3/ 利用 edit(), fix() 等对数据的修改
---end---
以上是关于R语言备忘录的主要内容,如果未能解决你的问题,请参考以下文章