El lenguaje R usa la función setdiff para la construcción de datos personalizados

Hay una colección de elementos de colección de conjuntos en la función básica del lenguaje R, que contiene varios elementos de colección. Tomemos un ejemplo para presentarlo a continuación. Supongamos que hay dos matrices x e y

set.seed(123)
(x <- c(sort(sample(1:20, 9)), NA))
##  [1]  2  3  5  6 10 11 14 15 19 NA
(y <- c(sort(sample(3:23, 7)), NA))
## [1]  5  7 10 11 12 16 22 NA

La función de unión es combinar dos series de números

union(x, y)
##  [1]  2  3  5  6 10 11 14 15 19 NA  7 12 16 22

La función de intersección toma la intersección de dos secuencias

intersect(x, y)
## [1]  5 10 11 NA

La función setdiff es la parte de restar la intersección de la secuencia de números. Tenga en cuenta que setdiff(x, y) y setdiff(y, x) son diferentes. setdiff(x, y) es la parte de la secuencia de x menos el intersección de la secuencia de x y la secuencia de y .

setdiff(x, y)
## [1]  2  3  6 14 15 19
setdiff(y, x)
## [1]  7 12 16 22

La función setequal es juzgar si los dos conjuntos de datos x e y son exactamente iguales

setequal(x, y)
## [1] FALSE

Hoy presentaremos principalmente la función setdiff. Usando la función de resta de esta función, se puede usar en el diseño de funciones. Importemos primero nuestros datos de nacimiento prematuro y veamos los nombres de las variables.

bc<-read.csv("E:/r/test/zaochan.csv",sep=',',header=TRUE)
dput(names(bc))
## c("id", "low", "age", "lwt", "race", "smoke", "ptl", "ht", "ui", 
## "ftv", "bwt")

Primero veamos la estructura de datos de bc

head(bc,6)
##   id low age lwt  race     smoke ptl ht ui ftv  bwt
## 1 85   0  19 182 black nonsmoker   0  0  1   0 2523
## 2 86   0  33 155 other nonsmoker   0  0  0   3 2551
## 3 87   0  20 105 white    smoker   0  0  0   1 2557
## 4 88   0  21 108 white    smoker   0  0  1   2 2594
## 5 89   0  18 107 white    smoker   0  0  1   0 2600
## 6 91   0  21 124 other nonsmoker   0  0  0   0 2622

Suponiendo que las distribuciones x e y son dos vectores de cadenas

x<-c("id", "low", "age", "lwt", "race", "smoke", "ptl", "ht", "ui", 
"ftv", "bwt")
y<-c("id")
x
##  [1] "id"    "low"   "age"   "lwt"   "race"  "smoke" "ptl"   "ht"    "ui"   
## [10] "ftv"   "bwt"
y
## [1] "id"

Supongamos que queremos eliminar la variable id de la cadena x

setdiff(x, y)
##  [1] "low"   "age"   "lwt"   "race"  "smoke" "ptl"   "ht"    "ui"    "ftv"  
## [10] "bwt"

De esta manera, la variable id se elimina fácilmente, pero algunas personas pueden preguntarse cuál es el uso de esto. En nuestra programación en lenguaje R, podemos usarlo para eliminar variables y construir datos. Supongamos que quiero escribir un programa R que pueda cambiar la estructura de datos eliminando nombres de variables

datchi<-function(data,dropvar) {
    
    
  name<-dput(names(data))
  dropvar<-dropvar
  cname<-setdiff(name, dropvar)
  data<-data[,cname]
  data
}

El programa es muy simple, dropvar es el nombre de la variable que queremos borrar, asumiendo que no queremos los datos de id en los datos

dat<-datchi(bc,"id")
## c("id", "low", "age", "lwt", "race", "smoke", "ptl", "ht", "ui", 
## "ftv", "bwt")
head(dat,6)
##   low age lwt  race     smoke ptl ht ui ftv  bwt
## 1   0  19 182 black nonsmoker   0  0  1   0 2523
## 2   0  33 155 other nonsmoker   0  0  0   3 2551
## 3   0  20 105 white    smoker   0  0  0   1 2557
## 4   0  21 108 white    smoker   0  0  1   2 2594
## 5   0  18 107 white    smoker   0  0  1   0 2600
## 6   0  21 124 other nonsmoker   0  0  0   0 2622

También es posible eliminar algunos más

dat<-datchi(bc,c("id", "low", "age"))
## c("id", "low", "age", "lwt", "race", "smoke", "ptl", "ht", "ui", 
## "ftv", "bwt")
head(dat,6)
##   lwt  race     smoke ptl ht ui ftv  bwt
## 1 182 black nonsmoker   0  0  1   0 2523
## 2 155 other nonsmoker   0  0  0   3 2551
## 3 105 white    smoker   0  0  0   1 2557
## 4 108 white    smoker   0  0  1   2 2594
## 5 107 white    smoker   0  0  1   0 2600
## 6 124 other nonsmoker   0  0  0   0 2622

Esta es solo una aplicación superficial. Al diseñar el programa del paquete R, podemos usar variables de grupo para sumar y luego comparar con todas las variables de los datos, de modo que podamos averiguar si hay datos anormales en todas las variables, y algunos otro Cómo usarlo, hablemos de eso cuando tengamos tiempo.

Supongo que te gusta

Origin blog.csdn.net/dege857/article/details/130511467
Recomendado
Clasificación