R语言

一些R语言的基本概念

2022-02-20  本文已影响0人  三点水的番薯

R中比较难重点但复杂的几个函数

示例数据

library(tidyverse)
diamonds
> x <-  colnames(diamonds)[1:5]
> x
[1] "carat"   "cut"     "color"   "clarity" "depth"  
> y <- colnames(diamonds)[1:10]
> y
 [1] "carat"   "cut"     "color"   "clarity" "depth"   "table"   "price"   "x"       "y"      
[10] "z"      
> z <- colnames(diamonds)[seq(1,10,2)] # seq:seq(from,to,length),该函数的意思是生成一组数字,从from开始,到to结束,每两个数间的间隔是length,如
> z
[1] "carat" "color" "depth" "price" "y"    

match
匹配两个向量,返回第二个向量在第一个向量匹配位置的下标志

>match(x,y)
[1] 1 2 3 4 5
>match(y,x)
[1] 1 2 3 4 5 NA NA NA NA NA

%in%
x%in%y: 判断x的每个元素在y中是否存在

z %in% x
[1]  TRUE  TRUE  TRUE FALSE FALSE

merge

merge(x, y, by = intersect(names(x), names(y)),
      by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all,
      sort = TRUE, suffixes = c(".x",".y"), no.dups = TRUE,
      incomparables = NULL, …)
#x, y: 数据框
#by, by.x, by.y:指定两个数据框中匹配列名称,默认情况下使用两个数据框中相同列名称。
#all:逻辑值; all = L 是 all.x = L 和 all.y = L 的简写,L 可以是 TRUE 或 FALSE。
#all.x:逻辑值,默认为 FALSE。如果为 TRUE, 显示 x 中匹配的行,即便 y 中没有对应匹配的行,y 中没有匹配的行用 NA 来表示。
#all.y:逻辑值,默认为 FALSE。如果为 TRUE, 显示 y 中匹配的行,即便 x 中没有对应匹配的行,x 中没有匹配的行用 NA 来表示。
#sort:逻辑值,是否对列进行排序。

apply
apply(X, MARGIN, FUN, ...)
将一个函数同时作用于一个数组或者矩阵的一个margin(margin用来指定是对行运算还是对列运算,margin=1表示对行运算,margin=2表示对列运算),FUN用来指定运算函数;...用来指定FUN中需要的其它参数。

>x <- matrix(1:12, ncol=3)
> x
     [,1] [,2] [,3]
[1,]    1    5    9
[2,]    2    6   10
[3,]    3    7   11
[4,]    4    8   12

> apply(x, 1, sum)    ## 行和
[1] 15 18 21 24
> apply(x, 2, sum)    ## 列和
[1] 10 26 42
> apply(x, 1, mean)    ## 行平均
[1] 5 6 7 8
> apply(x, 2, mean)    ## 列平均
[1]  2.5  6.5 10.5
上一篇 下一篇

猜你喜欢

热点阅读