Seleccione filas de R DataFrame que contengan valores positivos y negativos

En este artículo, discutiremos cómo seleccionar filas en el marco de datos que contiene valores positivos y negativos en el lenguaje de programación R. Pongamos un ejemplo para una mejor comprensión.

Suponga que tiene el siguiente marco de datos en R que contiene varias columnas y filas. Todas las filas contienen valores negativos o valores positivos o tal vez ambos de la siguiente manera.

Trama de datos en uso:

 

temp_1

temp_2

temp_3

temp_4

temp_5

1.

-74

88

39

-64

-83

2.

-89

52

37

-26

-39

3.

34

-28

-39

-54

-53

4.

-82

-19

-64

-33

-20

5.

-64

39

-93

-43

-31

6.

92

86

44

23

82

7.

-67

-31

38

63

-17

Entonces, nuestra tarea es seleccionar solo aquellas filas que contienen valores tanto positivos como negativos. Después de seleccionar los valores, nuestro marco de datos debería verse así.

Rendimiento esperado:

 

temp_1

temp_2

temp_3

temp_4

temp_5

1.

-74

88

39

-64

-83

2.

-89

52

37

-26

-39

3.

34

-28

-39

-54

-53

5.

-64

39

-93

-43

-31

7.

-67

-31

38

63

-17

 

Vamos a tomar un subconjunto del marco de datos si y solo hay alguna fila que contenga valores mayores que 0 y menores que 0, de lo contrario, no lo consideraremos.

Sintaxis:

subconjunto(x,(rowSums(signo(x)<0)>0) & (rowSums(signo(x)>0)>0))

Aquí, x es el nombre del marco de datos. 

Acercarse:

  • Crear conjunto de datos
  • Aplicar subconjunto()
  • Seleccionar filas con valores negativos y positivos
  • Mostrar esas filas

Ejemplo:

R

# To select rows in dataframe 
# that contains both positive and negative values
  
# Creating dataset 
# creating fisrs column
first <- c(-74,-89,34,-82,-64,92,-67)
  
# creating second column
second <- c(88,52,-28,-19,39,86,-31)
  
# creating third column
third <- c(39,37,-39,-64,-93,44,38)
  
# creating fourth column
fourth <- c(-64,-26,-54,-33,-43,23,63)
  
# creating fifth column
fifth <- c(-83,-39,-53,-20,-31,82,-17)
  
# creating dataframe
x <- data.frame(temp_1=first,
                 temp_2=second,temp_3=third,
                 temp_4=fourth,temp_5=fifth)
  
# checking if there exist a row with 
# both positive and negative values
subset(x,(rowSums(sign(x)<0)>0) & (rowSums(sign(x)>0)>0))

Producción:

Figura 1

Publicación traducida automáticamente

Artículo escrito por arpit122000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *