извлекать уникальные числа из столбца в кадре данных - PullRequest
0 голосов
/ 05 мая 2020

Я хочу извлечь уникальные числа из столбца из фрейма данных. Я извлек числа из разных столбцов и вошел в другой столбец фрейма данных. пример кода:

library(dplyr)
df <- as.data.frame(rbind(c("12,15,19,15,12,16,41"),c("1,2,3,4,5,4,3,2,1")))
df1 <- unique(df)

Ожидаемый результат:

12,15,19,16,41  
1,2,3,4,5

Ответы [ 3 ]

3 голосов
/ 05 мая 2020

Вы можете создать столбец списка в фрейме данных, не уверен, что это то, что вы хотите:

list_col <- lapply(
  strsplit(as.character(df$V1), ","), 
  function(x) as.numeric(unique(x))
)

df1 <- data.frame(I(list_col))
df1
#       list_col
# 1 12, 15, ....
# 2 1, 2, 3,....

df1$list_col
# [[1]]
# [1] 12 15 19 16 41
#
# [[2]]
# [1] 1 2 3 4 5
0 голосов
/ 05 мая 2020
df <- as.data.frame(rbind(c("12,15,19,15,12,16,41"),c("1,2,3,4,5,4,3,2,1")))

x <- apply(df, 1, function(x) eval(parse(text=paste0("c(", x, ")"))) )
sapply(x, function(x) as.numeric(unique(x)))

возвращает

      [,1] [,2]
[1,]   12    1
[2,]   15    2
[3,]   19    3
[4,]   16    4
[5,]   41    5
0 голосов
/ 05 мая 2020

Мы можем разделить строки на запятую (,) и извлечь только unique значений из каждой.

df$new_col <- sapply(strsplit(df$V1, ","), function(x) toString(unique(x)))
df

#                    V1            new_col
#1 12,15,19,15,12,16,41 12, 15, 19, 16, 41
#2    1,2,3,4,5,4,3,2,1      1, 2, 3, 4, 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...