¿Cómo puedo transformar mi marco de datos en este formato específico en R? -- r campo con dataframe camp Relacionados El problema

How can I transform my data frame into this specific format in R?


2
vote

problema

Español

Mi marco de datos actual en R tiene solo 2 columnas, a saber, la longitud y la latitud. Hay alrededor de 1500 registros (filas) y incluyen muchos duplicados.

Se muestra un extracto del marco de datos:

  longitude   latitude 57.408999   -20.208104 57.667991   -20.13641 57.539122   -20.103416 57.502332   -20.124798 57.414653   -20.261872 57.65949    -20.126768 57.468383   -20.223031 57.754464   -20.25823 57.754464   -20.25823 57.680745   -20.121893 57.65949    -20.179457 57.669408   -20.177538 57.702715   -20.211515   

Quiero convertir este cuadro de datos en el siguiente formato:

  longitude   latitude    emp emp2 57.408999   -20.208104  1   0.1 57.667991   -20.13641   11  1.1 57.539122   -20.103416  16  1.6 57.502332   -20.124798  10  1 57.414653   -20.261872  1   0.1 57.65949    -20.126768  2   0.2 57.468383   -20.223031  17  1.7 57.754464   -20.25823   9   0.9 57.754464   -20.25823   13  1.3 57.680745   -20.121893  13  1.3 57.65949    -20.179457  4   0.4 57.669408   -20.177538  3   0.3 57.702715   -20.211515  1   0.1   

emp será una nueva columna que es la frecuencia de cada longitud y latitud. Por lo tanto, mi marco de datos ahora solo tendrá longitud y latitud únicas con sus respectivos conteos.

emp2 es simplemente el valor de emp dividido por 10

¿Se puede hacer esto con r? Si es así, cualquier ayuda sería muy apreciada.

Desde que soy nuevo en r, estoy confundido en cuanto a dónde comenzar a resolver el problema.

Original en ingles

My current data frame in R has only 2 columns, namely longitude and latitude. There are around 1500 records (rows) and they include lots of duplicates.

An extract of the data frame is shown below:

longitude   latitude 57.408999   -20.208104 57.667991   -20.13641 57.539122   -20.103416 57.502332   -20.124798 57.414653   -20.261872 57.65949    -20.126768 57.468383   -20.223031 57.754464   -20.25823 57.754464   -20.25823 57.680745   -20.121893 57.65949    -20.179457 57.669408   -20.177538 57.702715   -20.211515 

I want to convert this data frame into the following format:

longitude   latitude    emp emp2 57.408999   -20.208104  1   0.1 57.667991   -20.13641   11  1.1 57.539122   -20.103416  16  1.6 57.502332   -20.124798  10  1 57.414653   -20.261872  1   0.1 57.65949    -20.126768  2   0.2 57.468383   -20.223031  17  1.7 57.754464   -20.25823   9   0.9 57.754464   -20.25823   13  1.3 57.680745   -20.121893  13  1.3 57.65949    -20.179457  4   0.4 57.669408   -20.177538  3   0.3 57.702715   -20.211515  1   0.1 

emp will be a new column which is the frequency of each longitude and latitude. Thus my data frame will now only have unique longitude and latitude with their respective counts.

emp2 is simply the value of emp divided by 10

Can this be done with R? If yes, any help would be highly appreciated.

Since I am new to R, I am confused as to where to start to solve the issue.

     

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

Una forma fácil con dplyr sería

  library(dplyr) df %>%   group_by(longitude, latitude) %>%   summarise(emp = n(),              emp2 = emp/10)   
 

An easy way with dplyr would be

library(dplyr) df %>%   group_by(longitude, latitude) %>%   summarise(emp = n(),              emp2 = emp/10) 
 
 
1
 
vote

ALTERNATIVO template <CharEncoding Encoding> template <typename Input_char_type, typename Output_char_type> void UnicodeConverter<Encoding>::InternalHelper<Input_char_type, Output_char_type>::function_a() { //do something } 0 SOLUCIÓN UTILIZADA template <CharEncoding Encoding> template <typename Input_char_type, typename Output_char_type> void UnicodeConverter<Encoding>::InternalHelper<Input_char_type, Output_char_type>::function_a() { //do something } 11111 .

  template <CharEncoding Encoding> template <typename Input_char_type, typename Output_char_type> void UnicodeConverter<Encoding>::InternalHelper<Input_char_type, Output_char_type>::function_a() {   //do something } 2  
 

Alternative base R solution using aggregate.

attach(df) df <- aggregate(df, by=list(longitude, latitude), FUN=length) colnames(df) <- c('longitude', 'latitude', 'emp', 'emp2') df$emp2 <- df$emp2 / 10 
 
 

Relacionados problema

1  Filtrando cada columna de un marco de datos un PUT NA para valores inigualables  ( Filtering each column of a data frame an put na for unmatched values ) 
Tengo una tabla de la siguiente manera: [,1] [,2] [,3] [,4] [,5] [1,] a A 0.06 0.31 -1.5 [2,] b B -0.75 0.2 0.02 [3,] ...

12  Deshacerse de las filas con atributos duplicados en r  ( Get rid of rows with duplicate attributes in r ) 
Tengo un gran contorno de datos con columnas tales como: ID, time, OS, IP Cada fila de ese flujo de datos corresponde a una entrada. Dentro de ese prot...

1  R - Quiero que el nombre de la línea de datos sea determinada por un argumento de línea de comandos  ( R i want data frame name to be determined by a command line argument ) 
Quiero que se determine un nombre de marco de datos por un argumento de línea de comandos. Lo siguiente debería dejarlo claro lo que estaba tratando de hacer ...

0  Fusionar con el minuto más cercano usando Pandas  ( Merge with the nearest minute using pandas ) 
Simplemente quiero fusionar dos cuadros de datos dentro de ± 1 min. AQUÍ NAME_DF con el conjunto de datos de muestra: Name Date A 2/19/2019 17:1...

4  Usando RBIND () para combinar múltiples marcos de datos en uno de los datos más grandes.Frame dentro de LAPLY ()  ( Using rbind to combine multiple data frames into one larger data frame within ) 
Estoy usando R-Studio 0.99.491 y R versión 3.2.3 (2015-12-10). Soy un relative Newbie a R, y apreciaría algo de ayuda. Estoy haciendo un proyecto donde estoy ...

2  Cambiar filas en pandas  ( Change rows in pandas ) 
Tengo una matriz en marco de datos de Pandas print dfMatrix 0 1 2 3 4 0 10000 10 8 11 10 1 10 100000 ...

1  ¿Puedes usar Pandas Groupby para agrupar filas, determinado sumando un valor de columna?  ( Can you use pandas groupby to group rows determined by summing a column value ) 
Me gustaría agrupar filas en un contexto de datos por valores de una columna. El ejemplo dado a continuación sería si estuviera agrupando los valores de 'Numb...

1  Pandas DataFrame al diccionario con tuplas como clave y valores  ( Pandas dataframe to dictionary with tuples as key and values ) 
Necesito ayuda para hacer lo siguiente: Tengo un archivo CSV como lo siguiente, cargado en un Frame 'DF'. Hay varias regiones, diferentes valores para la me...

1  Cambio de entradas en un fotograma de datos dependiendo de si están entre dos valores o por debajo de un valor  ( Changing entries in a dataframe depending on whether they are between two values ) 
Tengo un conteo de datos con la distancia en una columna y puntuaciones en otra columna, por ejemplo. Distance Scores 1000. 1 1500. 1 etc. Teng...

96  Cómo explotar una lista dentro de una celda de datos de datos en filas separadas  ( How to explode a list inside a dataframe cell into separate rows ) 
Estoy buscando convertir una célula PANDAS que contiene una lista en filas para cada uno de esos valores. Entonces, toma esto: Si me gustaría desempaca...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos