Langage R - un résumé minutieux des connaissances de base

Concevoir

Concernant le langage R, je souhaite l'écrire en trois parties

écrire devant

Parce que c'est la première fois que j'apprends le langage R, il est inévitable qu'il y ait des lacunes. Veuillez être patient avec moi. Ce document sera mis à jour au fil du temps et quelques réflexions personnelles seront ajoutées.

Si vous avez des questions, vous pouvez commenter directement ou me contacter. Bien entendu, la condition préalable à la réponse estVous êtes un peu comme ça !

En fait, R n'est pas l'objectif, encore moins le point final. R est bien meilleur que python, c++ et java, n'est-ce pas ? R ne nécessite pas d’examen, il vous demande simplement de résoudre des problèmes.

Le fait est queIl faut avoir une idée, vous devez savoir quels problèmes vous rencontrez et trouver des solutions à ces problèmes. Par exemple:

Si vous souhaitez traiter Excel, vous devez l'ouvrir et vous pouvez effectuer une recherche sur BaiduComment ouvrir Excel en langage R, si vous rencontrez des problèmes, vous pouvez les résoudre. Il existe de nombreuses méthodes en ligne.

La bonne solution : Aaron, pourquoi les fichiers csv sont-ils tronqués lorsque je les écris ? (Wow, Aaron peut gérer une autre ERREUR)

Mauvaise solution : Aaron, je ne sais pas comment faire ce devoir. S'il te plaît, aide-moi à l'écrire. . . (Personne n'appelle Aaron à moins que vous ne donniez de l'argent❤️)

Remerciements particuliers à : enseignant Yang Qingyong de l'École de l'information

Référence : Professeur Yang Qingyong PPT

Que peut faire le langage R ?

À ce sujet, la plupart des gens disent simplement : faites un dessin. Certains diront aussi analyser les données.

Voici la question : pensez-vous que le langage R est un cours d’eau ? Avant, je le pensais et je pensais que le langage R n'était pas important, mais plus tard j'ai découvert que c'était amusant.

En fait, il s’agit d’enseignants qui suivent les bonnes personnes et font les bonnes choses. Si vous suivez la mauvaise personne, il sera difficile de faire la bonne chose.

Tout d’abord, le langage R ne se limite pas au dessin : bien sûr, il est excellent pour dessiner, du moins bien meilleur que Python.

Deuxièmement, il existe de nombreux packages dans R et de nombreuses fonctions écrites que nous pouvons appeler, ce qui est très pratique pour l'analyse des données et même l'apprentissage automatique.C'est également très pratique pour tester et appeler des modèles ultérieurement.

"Je pense que R n'est pas la clé. La clé est la connaissance théorique, en particulier la connaissance de l'analyse statistique. R n'est qu'un outil, et le problème est le plus fondamental. Il y a un dicton célèbre dans l'industrie informatique :

La langue n’est qu’un outil, le problème est le plus fondamental.

Opérations de base

Comment installer et charger des packages dans R

1. Package d'installation : entrée en ligne de commande

install.packages("包的名字")
# 其实还有使用工具安装的,这个命令可以安装大部分包,其他个别的有问题都可以百度到解决方案

2. Chargez le package : saisissez-le sur la ligne de commande ou dans le code

library(包的名字) #不用写引号哦

Afficher le code d'aide

?solve  # 可以直接使用一个"?"来查看帮助文档
example(solve)  # 使用example()来查看该函数的使用范例
help(solve)  # 查看solve()函数的帮助文档

autre

help.start() # 查看全部帮助文档,或者进入http://127.0.0.1:27003/doc/html/index.html
??solve  # 查看某一确定的关键字内容文档,使用两个问号"??" 

sortir

print ne peut pas spécifier sep, mais cat peut

print("我爱帅帅龙");
cat("我爱","帅帅龙",sep="love");

Concaténation de chaînes

sep peut être spécifié pour renvoyer la chaîne concaténée, et les types non-chaînes sont automatiquement convertis en chaînes

a = paste("我爱","帅帅龙",1,"万年")

Autres opérations courantes

ctrl+L  # 清屏
rm(list=ls())  # 清除内存空间
getwd()  # 查看工作目录
setwd()  # 设置临时目录

code d'essai

dessiner un coeur chinois

library("fun")
library("rgl")

demo("ChinaHeart2D")
demo("ChinaHeart3D")

mot nuage

library(wordcloud2)
wordcloud2(demoFreq)
wordcloud2(demoFreqC)

grammaire de base

Affectation

a = 10;# 我个人喜欢这样,新版本兼容很好,大家不用想太多,直接冲就完事了
b <- 10;# 中规中矩的赋值,表示流向,数据流向变量,也可以写成10 -> b

Créer des vecteurs irréguliers

Ne vous inquiétez pas de ce qu'est un vecteur, traitez-le simplement comme un conteneur, similaire à la liste de Python.

a = c("我","爱","帅帅龙")

Créer des vecteurs avec certaines règles

Rep signifie répétition, ce qui signifie répétition.

x <- seq(1, 10, by = 0.5)  # 得到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  9.0  9.5 10.0
x <- seq(1, 10, length = 21)  # 从1到10,得到21个等间距数
x <- rep(2:5, 2)  # 得到2 3 4 5 2 3 4 5
x <- rep(2:5, rep(2, 4))  # 得到2 2 3 3 4 4 5 5

Créer un vecteur continu de nombres

a = c(1:5)  # 可以得到1 2 3 4 5

opérateur

En fait, il n'y a plus rien d'intéressant à lire à partir de maintenant. Il est recommandé de ne pas lire cette partie. Il suffit de la rechercher à nouveau lorsque vous rencontrez des problèmes ou lorsque vous regardez en arrière.

数值运算符
+  -  *  /
^  # 乘方
%%  # 求余
%/%  # 整除

关系运算符
>  <  ==  !=  >=  <=

逻辑运算符
&&  ||  !

其他运算符
:  # 冒号运算符,用于创建一系列数字的向量。
%in%  # 用于判断元素是否在向量里,返回布尔值,有的话返回 TRUE,没有返回 FALSE。
%*%  # 用于矩阵与它转置的矩阵相乘。

Fonctions mathématiques

Certaines fonctions mathématiques courantes sont :

fonction illustrer
carré(n) racine carrée de n
exp(n) La constante naturelle e élevée à la puissance n,
journal(m,n) La fonction logarithmique de n renvoie la puissance de n égale à m
log10(m) Équivalent à log(m,10)

La fonction d'arrondi dans R peut « arrondir cinq » dans certains cas. Lorsque le chiffre d’arrondi est un nombre pair, cinq sera également arrondi.

nom modèle paramétrique signification
rond (n) Rond n
rond (n,m) Arrondir n à m décimales
plafond (n) Arrondir
sol (n) Arrondir vers le bas

Fonctions trigonométriques

légèrement

Générer des lettres majuscules et minuscules

a = letters[1:4]  # letters为生成指定范围个小写字母向量。
b = LETTERS[1:4]  # LETTERS为生成指定范围个大写字母向量。

Les valeurs manquantes sont converties en 0

x [!is.na(x)]=0

Constantes communes

  • 26 LETTRES MAJUSCULES
  • 26 lettres minuscules
  • Abréviation du mois mois.abb
  • Nom du mois mois.nom
  • valeur π pi

Échanger des numéros et des chaînes

Convertir une chaîne en type numérique

as.integer("12.3")  # 字符串转整数,得到12
as.double("11.666")  # 字符串转小数,得到11.666

Convertir le type numérique en texte

Utilisez coller()

a = paste(1)  # 

formatC() génère les valeurs sous forme de chaînes

formatC(1/3, format = "e", digits = 4)  # digits表示小数点位数
formatC(1/3, format = "f", digits = 4)

as.character()

a=as.character(66)

contrôle de processus

si déclaration

x <- 50L
if(is.integer(x)) {
   print("X 是一个整数")
} else {
   print("X 不是一个整数")
}

le commutateur n'introduit pas

boucle while

a = 1
while(a<5){
    print('hello')
}

pour la boucle

Le langage R est particulièrement difficile à traiter pour les boucles. Enfin, c'est juste difficile de toute façon. Je ne sais pas pourquoi.

a = c([1:4])

for(i in a){
    print(i)
}

répéter la boucle

Répéter signifie répéter.

a = 1
sum = 0
repeat{
  if(sum>10){
    break  # break终止循环,next继续下一次循环,就好像c++或python的continue
  }
  sum=sum+a
  a=a+1
}
print(sum)

Structures de données communes

Frère Meng, allons droit au but ! ! !
Insérer la description de l'image ici

Vecteur : c()

Hélas, qu’est-ce qu’un vecteur exactement ? En fait, cela peut être simplement compris comme une liste python, mais en fait, il existe une implémentation de list dans R, appelée list, et elle peut stocker différents types.

Caractéristiques:

  • Un seul type d'élément peut être stocké. S'il y a des nombres et des chaînes, ils seront automatiquement convertis en chaînes.
  • Vous pouvez utiliser l'index pour obtenir des éléments (l'index commence à 1)
  • Vous pouvez utiliser l'opération de découpage pour intercepter un fragment, et les deux extrémités sont des intervalles fermés.

Créer un vecteur

La grammaire de base a déjà été mentionnée auparavant.

Ajouter de la valeur en utilisant l'ajout

good_sample_p <- append(good_sample_p,p)

Opérations d'addition, de soustraction, de multiplication et de division de vecteurs

Une chose intéressante est la règle de recyclage des vecteurs, tels que a=c(1,2,3), b=c(4,5). À ce moment, si a+b est utilisé, il y aura un message d'avertissement, mais il ne signalera pas d'erreur. .

Prenons l'exemple de a+b : c'est en fait (1+4, 2+5, 3+4). Vous comprenez maintenant ce qu'est le recyclage.

Quelques fonctions couramment utilisées

  • sqrt(x), log(x), exp(x), sin(x), cos(x), tan(x), abs(x) représentent respectivement les racines carrées, les logarithmes, les exponentielles, les fonctions trigonométriques et les valeurs absolues .
  • sort(x, décroissant=FALSE) renvoie un vecteur résultant trié du petit au grand par les éléments de x.
  • order(x) est un vecteur d'indices d'éléments tel que x soit classé du petit au grand
  • sort(x) est équivalent à x[order(x)]
  • numeric(n) : représente un vecteur nul de longueur n
  • all(log(10 * x) > x) : Détermine si un vecteur logique est vrai
  • any(log(10 * x) > x) : détermine s'il existe une vraie valeur
  • is.na(c(1, 2, NA)) : Déterminer si chaque élément de x est une valeur manquante

vecteur logique

Les vecteurs peuvent prendre des valeurs logiques, telles que

y <- c(TRUE, TRUE, FALSE)
x = c(1, 4, 6.25)
y = x > 3
# y的值是
[1] FALSE TRUE TRUE

Deux vecteurs peuvent également être comparés

x = c(1, 4, 6.25)
log(10 * x)
[1] 2.302585 3.688879 4.135167
log(10 * x) > x
[1]  TRUE FALSE FALSE
比较运算符:<,<=,>,>=,==(相等),!=(不等)
逻辑向量可以进行与(&)[表示同时满足],或(|)[两者之一]运算.

Vous pouvez également forcer la conversion de la valeur logique en valeur entière, par exemple : VRAI devient 1, FAUX devient 0,

x = c(1, 4, 6.25)

c(0, 1)[(x > 3) + 1]  # 下面我会对这句话解释一下
[1] 0 1 1

(x>3)+1
[1] 1 2 2

Je vais expliquer cette ligne de code c(0, 1)[(x > 3) + 1] ici.

(x > 3) obtiendra le vecteur logique [F ,T ,T]

(x>3)+1 forcera la valeur logique à une valeur entière pour obtenir [1,2,2]

Utilisez-le ensuite comme index du vecteur précédent, c(0,1), pour obtenir [0,1,1]

vecteur de caractère

Autrement dit, il y a des caractères dans le vecteur (cette explication n'est-elle pas très simple ?)

a = c("我爱",'帅帅龙')  # 如果同时出现了字符串和数字,数字会转为字符串的哦

La fonction coller est utilisée pour concaténer ses variables indépendantes dans une chaîne, avec les délimiteurs correspondants au milieu. L'épissage de chaîne précédent a été introduit, d'accord ?

vecteur complexe

Il n’est pas beaucoup utilisé, alors pourquoi ne pas simplement le présenter, d’accord ?

indice vectoriel

Frère mignon! Réveillez-vous, c'est très important !

Les indices des vecteurs en R commencent à 1, ce qui est incompatible avec les logiciels statistiques ou mathématiques courants. Les indices des vecteurs en langage C, Python et autres langages de programmation commencent à 0 !

Ne vous laissez pas tromper par Python. L’index négatif de R indique quel élément supprimer.

x = c(42, 7, 64, 9)
x[2]  # 访问第2个元素
x[3] = -1  # 修改第三个数据的值
x[-4]  # 删除第四个元素
x[x < 10]  # 表示选取x<10的元素
x[c(1, 4)]  # 向量索引,是不是很神奇?

Lors de la définition d'un vecteur, vous pouvez ajouter des noms aux éléments.

ages <- c(Li = 23, Zhang = 33, Wang = 45)
# ages为
Li   Zhang  Wang 
23    33         45 
# 访问时可以用通常的方法,还可以用元素名访问
ages["Zhang"]
# 还可以定义向量后,再后加上名字
age1 = c(21, 34, 56)
names(age1) = c("Zhang", "Ding", "Liu")

matrice:matrice

matrice (données = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)

  • les données sont les données de la matrice, généralement un vecteur
  • nrow est le nombre de lignes, ncol est le nombre de colonnes
  • Lorsque byrow est VRAI, ce sera 1, 2, 3, 4 horizontalement, sinon ce sera 1, 2, 3 verticalement.

Créer une matrice

matrix(1:12,ncol=4,byrow=TRUE)
# 得到的数据
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12

Fonctions couramment utilisées

  • head(a,10) Afficher les 10 premières lignes de la matrice

  • tail(a,10) Afficher les dix dernières lignes de la matrice

  • cbind() : fusionner de haut en bas

  • rbind() : fusionner gauche et droite

  • c(A) : affiche tous les vecteurs de A, qui sont des vecteurs redressés par colonnes.

  • det(A) : Trouver la valeur du déterminant

  • résoudre(A) : trouver l’inverse

  • propre(A) : valeurs propres et vecteurs propres

B=rbind(c(1,2),c(3,4))
C=cbind(c(11,12),c(13,14))
D=rbind(B,C)
E=cbind(B,C)

Opérations matricielles

Similaire à l'addition, la soustraction, la multiplication et la division de vecteurs

Les opérations participantes ont généralement la même forme, et des vecteurs et des matrices aux formes incohérentes peuvent également être utilisés pour quatre opérations arithmétiques. La règle est que les données de la matrice sont opérées sur les éléments correspondants du vecteur (redressés par colonnes).

Accéder aux éléments matriciels et aux sous-matrices

  • L'accès A[2,3]# est l'élément (2,3) 7 de la matrice
  • A[i,] #Accéder à la i-ème ligne, A[,j] #Accéder à la j-ème colonne
  • A[,c(1,2,3)] trois premières colonnes
  • A[,c('name1','name2')] spécifie le nom de la colonne

Renommez les étiquettes de ligne et de colonne de la matrice.

rownames(A)  <- c("a", "b", "c")
colnames(A) <- paste("X", 1:4, sep="")

appliquer la fonction

Si vous souhaitez effectuer un calcul sur une certaine ligne (colonne) d'une matrice, vous pouvez utiliser la fonction apply : apply(x, margin, fun, …)

x représente la matrice, margin=1 représente le calcul pour chaque ligne, margin=2 représente le calcul pour chaque colonne et fun est la fonction utilisée pour le calcul.

apply(A, 1, sum)
apply(A, 2, mean)

facteur : facteur

facteur (x, niveaux = sort (unique (x), na.last = TRUE), étiquettes, exclure = NA, ordonné = FALSE)

Utilisé pour coder un vecteur en facteur

Créer des facteurs

sex = c("M","F","M","M","F")
sexf = factor(sex);sexf

Fonctions couramment utilisées

  • is.factor() vérifie si l'objet est un facteur
  • as.factor() convertit les vecteurs en facteurs
  • niveaux(x) peut obtenir les niveaux des facteurs
  • la table (x) compte la fréquence de différents types de données

fonction tapply()

tapply(x, INDEX, FUN=NULL,…,simplify=TRUE)

  • x est un objet, généralement un vecteur
  • INDEX est un facteur de même longueur que X
  • FUN est la fonction à calculer

Connaissant le sexe de 5 élèves, et connaissant également la taille de ces 5 élèves, trouvez la taille moyenne des groupes.

sex = c("M","F","M","M","F")
height = c(174, 165, 180, 171, 160)
tapply(height, sex, mean)

fonction gl()

gl(n, k, longueur = n*k, étiquettes = seq_len(n), ordonné = FALSE)

gl() peut être utilisé pour générer facilement des facteurs

  • n est le nombre de niveaux
  • k est le nombre de répétitions
  • length est la longueur du résultat
  • les étiquettes sont un vecteur à n dimensions représentant les niveaux de facteurs
  • ordonné est une variable logique indiquant s'il s'agit d'un facteur ordonné. La valeur par défaut est FALSE.

Liste : liste

Créer une liste

rec <- list(name="黎明", age=30, scores=c(85,76,90));rec
# 得到的数据
$name
[1] "黎明"

$age
[1] 30

$scores
[1] 85 76 90

Citer et modifier des listes

Les éléments de liste peuvent être référencés avec "nom de liste[[indice]]". Les listes sont différentes des vecteurs. Un seul élément peut être référencé à la fois. Par exemple, rec[[1:2]] n'est pas autorisé.

rec <- list(name="黎明", age=30, scores=c(85,76,90));rec
rec[[2]]  # 得到30
rec[[3]][2]  # 得到第三个元素的第二个元素,即76
# 若指定了元素的名字,则引用列表元素还可以用它的名字作为下标,
rec$age
rec[["age"]]
rec[[2]]=11  # 把30修改为11

Remarque : L'utilisation de « nom de liste [indice] » ou « nom de liste [plage d'indice] » est autorisée, mais contrairement à la signification précédente, il s'agit toujours d'une liste.

Trame de données : data.frame

De nombreux points importants

Une trame de données est généralement une matrice de données, mais les colonnes d'une matrice peuvent être de différents types. Chaque colonne du bloc de données est une variable et chaque ligne est une observation.

Ceci est similaire au DataFrame dans les pandas de Python.

Générer un bloc de données

d = data.frame(name=c('黎明','周杰伦','刘德华'),age=c(30,35,28),height=c(180,175,173))
# d的值
    name age height
1   黎明  30    180
2 周杰伦  35    175
3 刘德华  28    173

as.data.frame(list) peut convertir la liste en data.frame(), car la liste ne peut pas spécifier de nom.

Référence du bloc de données

d = data.frame(name=c('黎明','周杰伦','刘德华'),age=c(30,35,28),height=c(180,175,173))
d[1:2, 2:3]  # 得到前两行,2,3列的数据
d[["age"]]  # 获取age这一列的数据
# 等价于
d$height  # 获取height这一列的数据
rownames(d) = c("one", "two", "three")  # 各行也可以定义名字,指定index

Modifier la valeur

d$name[1] = "我爱你"  #将name的第一个值修改为我爱你   常用
d[1,2] = "女"  #将第1行第2列的值修改为“女”   常用
d[[1]][2] = "我爱你"  #将第一列第二个值改为“我爱你”

Ajouter et supprimer des lignes et des colonnes

d = df1[-2,] #删除第2行数据
d = df1[,-3] #删除第3列的数据
d = df1[-c(1,3),] #删除第1行和第3行的数据
d$r = age/weight  # 添加列r

fonction attach()

R fournit la fonction attach() pour transférer des variables en mémoire. Tout comme notre d$height ou d[["age"]], vous n'avez pas besoin de l'écrire comme ça. Écrivez simplement l'âge directement. N'est-ce pas cool ?

d = data.frame(name=c('黎明','周杰伦','刘德华'),age=c(30,35,28),height=c(180,175,173))
attach(d)
r <- age/height  # /对r进行修改不会影响d的数据
# r的值
[1] 0.1666667 0.2000000 0.1618497
detach(d) #取消连接

fusionner()

Fusionner plusieurs trames de données en une seule trame de données

merge(data1, data2, by='ID')

Gestion des exceptions tryCatch()

Comme la plupart des langages de programmation, je n’entrerai pas dans les détails ici. Ce que vous devez savoir, c’est qu’il existe une autre chose appelée withCallingHandlers().

withCallingHandlers() est une variante de tryCatch(), mais les conditions contextuelles de l'opération sont différentes. Elle est rarement utilisée, mais elle est très utile.

Lecture et sauvegarde des données

Lire le txt : read.table()

read.table("nom de fichier.txt")

Lire xlsx : read.xlsx()

Vous devez d'abord installer le package xlsx, puis importer le package xlsx

données <- read.xlsx("nomfichier.xlsx",n)

Enregistrer au format CSV : write.csv()

write.csv(data,file = "nom du fichier")

avec xlsx:write.xlsx()

écrire.xlsx(données, "data.xlsx",sheet.name="sheet1")

Enregistrer sous forme d'image ou de fichier PDF dans R

Prenons l'exemple du png

png(file="myplot.png", bg="transparent")  #文件不指定地址,默认放在getwd()里了

# 这里写你的画图程序#

dev.off()  # 记得off

# 下面是一个实例
png(file="myplot.png")
plot(1:10)
rect(1, 5, 3, 7)
dev.off()

Si vous l'enregistrez au format jpeg ou pdf, changez-le simplement en png.

Quelques fonctions courantes de R

Frère Meng, préparez-vous. Rappelez-vous d'abord ces choses. Nous allons commencer à dessiner des images et à analyser des statistiques.

Glossaire

moyenne, médiane, mode

Non, non, non, il y a vraiment des gens qui ne savent pas ce que signifient ces trois mots. . .

variance

La variance (variance de l'échantillon) est la moyenne des carrés des différences entre chaque valeur de l'échantillon et la moyenne de la valeur de l'échantillon entier.

écart-type

Par défaut, nous utilisons l’écart type de la population, qui est la racine carrée de la variance.

distribution normale

La courbe normale est en forme de cloche, basse aux deux extrémités, haute au milieu et symétrique. Parce que la courbe est en forme de cloche, les gens l'appellent souvent une courbe en forme de cloche.

Si la variable aléatoire X obéit à une distribution normale d'espérance mathématique μ et de variance σ^2, elle est enregistrée sous la forme N(μ, σ^2). (L'attente est Σxn*pn, xn représente la fréquence et pn représente la probabilité)

Sa fonction de densité de probabilité est une distribution normale. La valeur attendue μ détermine sa position et son écart type σ détermine l'amplitude de la distribution. La distribution normale lorsque μ = 0, σ = 1 est la distribution normale standard.
Insérer la description de l'image ici

Concernant la signification de la distribution normale, vous pouvez cliquer ici pour référence.

signifier : obtenir la moyenne

a=c(1:6)
mean(a)

médiane : obtenir la médiane

a=c(1:6)
median(a)

Obtenez le mode

Il n'y a pas de fonction particulière en langage R pour obtenir le mode, il faut donc l'écrire à la main

# 创建函数
getmode = function(v) {
   uniqv = unique(v)  # unique主要是返回一个把重复元素或行给删除的向量、数据框或数组
   uniqv[which.max(tabulate(match(v, uniqv)))]
}
 
# 创建向量
v = c(2,1,2,3,1,2,3,4,1,5,5,3,2,3)
 
# 调用函数
result = getmode(v)
print(result)

quantile() : centile, la valeur par défaut est 5

a=c(1:6)
quantile(a)
# 得到的结果
> quantile(a)
  0%  25%  50%  75% 100% 
1.00 2.25 3.50 4.75 6.00 

summary() : statistiques descriptives

summary() : obtient des statistiques descriptives, qui peuvent fournir la valeur minimale, la valeur maximale, le quartile et la valeur moyenne des variables numériques, ainsi que des statistiques de fréquence des vecteurs de facteurs et des vecteurs logistiques, etc.

Les résultats sont interprétés comme suit :

a=c(1:6)
summary(a)
# 得到的结果
> summary(a)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    2.25    3.50    3.50    4.75    6.00 

var() : Calculer la variance

a = c(1:5)
var(a)

sd() : écart type

a = c(1:5)
sd(a)

coefficient de variation

Variance divisée par la moyenne

Lorsque vous devez comparer le degré de dispersion de deux ensembles de données, si les échelles de mesure des deux ensembles de données sont trop différentes ou si les dimensions des données sont différentes, il n'est pas approprié d'utiliser directement l'écart type à des fins de comparaison. peut utiliser le coefficient de variation.

trier, ordonner : trier, spécifier des règles de tri

x = c(1,7,5,4,4,6,9)
x = sort(x,decreasing=FALSE)  # 返回升序排列结果,当decreasing为TRUE时为降序排列
# 或者
x_order = order(x,decreasing=FALSE)  # 返回升序后的下标, decreasing为TRUE时为降序排列
x = x[x_order]

Pour trier une matrice

x[ordre(x[,1],x[,2]),]

Remarque : Pour l'ordre décroissant, ajoutez simplement le paramètre décroissant.

Gestion des valeurs manquantes

Pour les valeurs NA, certains calculs seront sauvegardés. Nous devons ignorer NA et ajouter les paramètres suivants : na.rm=TRUE, par exemple

mean(height,na.rm=TRUE)
[1] 5.855

cor() : Calculer le coefficient de corrélation entre deux variables (facultatif)

cor(height,log(height))

cov() : covariance entre deux variables (facultatif)

cov(height,log(height))

shapiro.test() : Déterminer si les données satisfont à la distribution normale

De manière générale, lorsque la valeur p renvoyée est supérieure à 0,05, elle est satisfaite.

Bien sûr, il existe des circonstances particulières, haha, car dans la plupart des cas de recherche scientifique, 0,05 n'est pas rigoureux et peut être désigné par 0,01. Si la question ne précise pas d'alpha, indiquez simplement 0,05 par défaut.

Je suppose que tu aimes

Origine blog.csdn.net/m0_46521785/article/details/109089346
conseillé
Classement