R语言程序员

狗汪爪记3—R语言数据操作

2018-02-16  本文已影响17人  在下傻狗汪

今天先对之前的2进行了补充修改,另外写一下R语言对于数据的处理方式,与其他语言相比R语言的确方便许多。
向量化是R的最大优势之一(可以用于减少循环)
gdata包、gtool包、plyr都挺有意思的,大家可以试一下

1、c():最基本的命令
其中有几个选项

> vec <- c(1,3,6,2,7,4,8,1,0)
> vec
[1] 1 3 6 2 7 4 8 1 0
> vecB <- c(vec,4,1)
> vecB
 [1] 1 3 6 2 7 4 8 1 0 4 1

2、length(): 向量的长度

示例

3、sort():对数据进行排序

sort(x, decreasing = FALSE, na.last = NA, ...)

4、rev():按倒序方式进行排列


5、order():以向量的形式返回按增序或减序排列后的各元素在原始向量中的位置索引


6、rank():返回各元素的排名序号(rank)所构成的向量,

rank(x, na.last = TRUE,
     ties.method = c("average", "first", "last", "random", "max", "min"))

7、unique():移除向量中重复出现的元素


8、duplicated():判断向量中每个元素是否在它之前的元素中已经出现过
如果TRUE,出现过
如果FALSE,没出现过


对矩阵和数据框进行计算
9、dim():矩阵或数据框的维数(大小)


10、nrow(),ncol():行数,列数


11、dimnames():行和列的名称


12、names(),colnames():列的名称


13、rownames():行的名称


14、cbind():合并列

cbind(..., deparse.level = 1)
rbind(..., deparse.level = 1)

15、merge():合并两个数据框,相同的标签进行合并


16、rbind():合并行


17、apply():可以使用另一个给定的函数,来对一个矩阵或数据框的全部行或全部列进行计算

apply(X, MARGIN, FUN, ...)


18、sweep()

sweep(x, MARGIN, STATS, FUN = "-", check.margin = TRUE, ...)

19、rowSums(),colSums(),rowMeans(),colMeans():行和,列和,行平均,列平均


20、ts():用于创建一个时间序列对象

ts(data = NA, start = 1, end = numeric(), frequency = 1,
   deltat = 1, ts.eps = getOption("ts.eps"), class = , names = )

21、stack:将一个数据框的某些列的值串联成单个向量,该函数会输出一个数据框,
第一列为堆叠的向量,
第二列包含一个因子用以指示各个观测的原始出处,
unstack:执行逆向操作,对方差分析是非常有用的
元素 标签

标签
元素


22、arggregate:根据一个因子(由参变量by的值指定)将一个数据框分裂为几个子总体并对每一个子总体应用某个预定给定的函数
注:有点像标签合并


23、transform():用来对数据框的列进行转换操作,

transform(`_data`, ...)

逻辑关系计算
24、logical()
any(x):若有一个x是TRUE,则为TRUE
all(x):若全部的x都是TRUE,则为TRUE
all.equal(x,y):x是否约等于y,
identical(x,y):对于任意x = y,则为TRUE


集合运算
25、is.element(vec,A):属于
all(A %in% B):包含于(子集)
all(B %in% A):超集
intersect(A,B):交集
union(A,B):并集
setdiff(A,B):补集
setdiff(union(A,B),intersect(A,B)):对称差


提取元素
26、[


27、which():输出对应于值TRUE的位置索引
which.min,which.max:输出最小值的标签,输出最大值的标签


28、replacement:对一个向量中的元素进行替换与提取的操作,
选择想要替换的元素,然后使用附值符号<-后面紧跟替代目标元素,
需要指定与挑选好的元素同样数目的替代目标元素。


29、array():产生排列

array(data = NA, dim = length(data), dimnames = NULL)

30、list():产生列表
A[c(3,4)]:从A中选出标签为3和4的元素
A[[c(2,3)]]:从A中先检索标签2,然后从中选出3的元素
如果标签名称中有空格,检索时,则要用‘ ' 包起来


31、noquote,'sQuote','dQuote':抑制输出结果中双引号的显示,
用来显示不同样式的引号。


32、format():用来产生个性化的显示,
还有cat(),sprintf(),print(),


33、nchar():计算一个字符串中字符的数目,


34、paste():用于连接若干个字符串

paste (..., sep = " ", collapse = NULL)

35、substring():从一个字符串中提取子字符串

substring(x, start, stop)

36、strsplit():用于分裂一个字符串

strsplit(x, split, fixed = FALSE, perl = FALSE, useBytes = FALSE)

37、grep:用来在字符串向量中搜寻某一种模式,它返回字符串向量中包含这一模式的元素的位置索引。
grep(要查找的字符,待处理的所有字符串数据)
返回含有这个字符的数据的标签号


38、gsub:将字符串向量中所有的元素中具有某一模式的部分以另一个字符串进行替换
gsub(待替换字符,替换字符,待处理的所有字符串数据)


39、sub:和gsub类似,只是它只替换 第一个 具有特定模式的字符串中的那一部分。


40、tolower()toupper():可用来将一个字符串强制变为小写或大写形式。


41、Sys.timedate():可以显示当前的日期和时间


42、Sys.sleep:控制在给定的秒数后中止一列指令的执行


43、strptime:可用来从一个字符串中检索日期并将其存入到一个POSIXlt类的R对象中。

strptime(x, format, tz = "")
编码 描述
%a 缩写形式的星期几
%A 星期几的全名
%b 月份的缩写
%B 月份的全名
%c 日期和时间及时区
%d 月份中的天数(01-31)
%H 小时,24小时制(0-24)
%I 小时,12小时制(0-12)
%j 一年中的某天(001-366)
%m 月份(01-12)
%M 分钟(00-59)
%S 秒数(00-61),含2闰秒
%U 一年的星期数(00-53) 第一个周日记为第1周第1天
%w 星期的天数(0-6);周日是0
%W 一年的星期数(00-53)第一个周一记为第1周第1天
%x 特定时区的日期
%X 特定时区的时间
%y 不带世纪的年份
%Y 有世纪的年份
%z 从格林威治时间开始算的偏移;‘0800',为格林威治往西8小时
%Z 字符串形式的时区(仅输出)

44、``:

命令 描述
sec(0-61) 秒数
min(0-59) 分钟数
hour(0-23) 小时数
mday(1-31) 月份中的日数
mon(0-11) 从年度第1个月开始算的月数
year 从1900年开始算的星期的天数
wday(0-6) 从周日开始算的星期的天数
yday(0-365) 一年的天数
isdat 夏时制标志:若DST被观测到取正值,否则取正值,否则为0

45、as.POSIXct,as.POSIXlt


之后会继续补充,请各位前辈们指正

上一篇 下一篇

猜你喜欢

热点阅读