Сортировка по списку внутри фрейма данных в R - PullRequest
0 голосов
/ 06 марта 2020

Я получил фрейм данных, где столбец (в данном случае V2) - это список, например:

df <- structure(list(V1 = c(1, 2, 3), 
                     V2 = list(c(1, 2, 78, 3), c(9, 4, 78, 8), c(33, 18, 25, 20, 10, 23))), 
                row.names = c(NA, -3L), class = "data.frame")

#  V1                     V2
#1  1            1, 2, 78, 3
#2  2            9, 4, 78, 8
#3  3 33, 18, 25, 20, 10, 23

Мне нужно переставить элементы в каждой строке V2. Я пробовал lapply с sort над V2, но не могу заставить его работать.

Вот мой желаемый результат:

#  V1                     V2
#1  1            1, 2, 3, 78 
#2  2            4, 8, 9, 78
#3  3  10, 18, 20, 23, 25,33

Любые предложения очень приветствуются!

Ответы [ 2 ]

2 голосов
/ 06 марта 2020

Просто:

df$V2 <- lapply(df$V2, sort)
0 голосов
/ 06 марта 2020

В tidyverse мы можем использовать map

library(purrr)
library(dplyr)
df <- df %>%
    mutate(V2 = map(V2, sort))
df
#  V1                     V2
#1  1            1, 2, 3, 78
#2  2            4, 8, 9, 78
#3  3 10, 18, 20, 23, 25, 33
...