Как я могу заменить конкретные значения всех элементов в списке - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть список cluster_list из 11 элементов, каждый элемент одинаковой длины.

 > class(cluster_list)
[1] "list"

Каждый элемент выглядит как пример элемента 2:

head(cluster_list[[2]][,1:15])
     X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
765   t  t  t  c  t  t  a  a  a   a   c   a   t   a   a
7319  -  -  -  -  -  -  -  -  -   -   -   -   -   -   -
8335  t  t  t  c  t  t  a  a  a   a   c   a   t   a   a
7162  -  -  -  -  -  -  -  -  -   -   -   t   c   t   a
7382  -  -  -  -  -  -  -  -  -   -   -   -   -   -   -
7244  -  -  -  -  -  -  -  -  -   -   -   -   -   -   -

Я хочу удалить / изменить все "-" на "" для всех 11 элементов в списке

Я знаю, как сделать это в матрице:

matrix_new <- matrix_old[matrix_old=="-"] <- ""

Или как удалить столбец элемента в списке:

cluster_list <- lapply(cluster_list, function(x) x[!(names(x) %in% c("X1"))])

Но я не могуудалить "-" из списка.(Я новичок в использовании list и функции lapply). Любые предложения, чтобы он выглядел следующим образом:

> head(cluster_list[[2]][,1:15])
     X1  X2  X3  X4  X5  X6  X7  X8  X9  X10 X11 X12 X13 X14 X15
765  "t" "t" "t" "c" "t" "t" "a" "a" "a" "a" "c" "a" "t" "a" "a"
7319 ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  "" 
8335 "t" "t" "t" "c" "t" "t" "a" "a" "a" "a" "c" "a" "t" "a" "a"
7162 ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  "t" "c" "t" "a"
7382 ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  "" 
7244 ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  ""  "" 

thx K

1 Ответ

0 голосов
/ 14 декабря 2018

Мы можем перебрать list и использовать replace, чтобы изменить значения, которые - на пустые ('')

cluster_list_new <- lapply(cluster_list, function(x) replace(x, x== '-', ''))
...