Bonjour voici un code dont je n'arrive pas à comprendre totalement la syntaxe, je viens ici pour éclairer mes lumières

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
library(data.table)
 
e <- structure(list(
  ID=c("A","B","C","D","a"),
  T1=c("1","2","3","4","a"),
  T2=c("a1","a2","a3","a4","a"),
  G1=c("T1","T2","T3","T4","b")), row.names = c(NA, -5L), class = c("tbl_df", "tbl", "data.frame")
)
 
 
liste = which( sapply( names(e), function(x) grepl("^T.",x) ) )
tous_egaux <- function(x) as.integer(all(x[1] == x[-1],na.rm=T)) 
e <- as.data.table(e)
e<- e[, TOUS_EGAUX := apply(.SD, 1, tous_egaux), .SDcols = liste]
Il y a dans ce cas deux passages obscurs :

Tout d'abord dans la fonction je ne comprends pas la syntaxe all(x[1] == x[-1],na.rm=T) (sauf le na.rm=Tque j'ai rajouté et que je comprends bien )
Puis ensuite le apply(.SD,1,function) ( à quoi sert le 1 ? ) et le signe := qui semble être un signe d'affectation ?

Merci de votre lecture, et peut-être de me donner quelques éléments d'explications.