Как перебрать список списков - PullRequest
0 голосов
/ 29 июня 2018

Я хочу перебрать список списков (в кадре данных), чтобы для каждого сайта биопсии я добавлял случайное число, за исключением случая, когда сайт биопсии: Нет, в этом случае вставка не происходит

Введите:

list(c("Biopsy site: Duodenal bulb", "Biopsy site: Stomach", 
"Biopsy site: None", "Biopsy site: D2 - 2nd part of duodenum"
), "Biopsy site: None", c("Biopsy site: D2 - 2nd part of duodenum", 
"Biopsy site: Stomach", "Biopsy site: Oesophagus"), c("Biopsy site: Stomach", 
"Biopsy site: None", "Biopsy site: Oesophagus"), c("Biopsy site: Duodenal bulb", 
"Biopsy site: Stomach"))

Намеченный выход

[1] "3 Biopsy site: Duodenal bulb"             "5 Biopsy site: Stomach"                   "Biopsy site: None"                      "7 Biopsy site: D2 - 2nd part of duodenum"

[[2]]
[1] "Biopsy site: None"

[[3]]
[1] "8 Biopsy site: D2 - 2nd part of duodenum" "3 Biopsy site: Stomach"                   "7 Biopsy site: Oesophagus"               

[[4]]
[1] "6 Biopsy site: Stomach"    "Biopsy site: None"       "3 Biopsy site: Oesophagus"

[[5]]
[1] "2 Biopsy site: Duodenal bulb" "3 Biopsy site: Stomach"      

Покушение

    lapply(OGDProcedureDf$BiopsyType, function(p)
ifelse(!grepl("None",OGDProcedureDf$BiopsyType),paste(sample(1:10),OGDProcedureDf$BiopsyType),"")
        )

но я думаю, что проблема в том, что это вложенный список, поэтому мне нужно вложенный lapply?

1 Ответ

0 голосов
/ 29 июня 2018

Нет необходимости во вложенном lapply, и ваша попытка довольно близка:

lst_0 <- list(c("Biopsy site: Duodenal bulb", "Biopsy site: Stomach", 
"Biopsy site: None", "Biopsy site: D2 - 2nd part of duodenum"
), "Biopsy site: None", c("Biopsy site: D2 - 2nd part of duodenum", 
"Biopsy site: Stomach", "Biopsy site: Oesophagus"), c("Biopsy site: Stomach", 
"Biopsy site: None", "Biopsy site: Oesophagus"), c("Biopsy site: Duodenal bulb", 
"Biopsy site: Stomach"))

lapply(lst_0, function(p)
  ifelse(!grepl("None",p),paste(sample(1:10),p),p)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...