Как перебирать "withTags" и "div" в R - PullRequest
1 голос
/ 01 августа 2020
trial <- c("a", "b", "c", "d")
                  
for (i in 1 : 4 ){
  bus <- withTags(
    div(id = i,trial[i]))
  print(bus)
}

Я бы хотел, чтобы результат был:

<div id="1">a</div>
<div id="2">b</div>
<div id="3">c</div>
<div id="4">d</div>

, но я получаю Error in trial[i] : invalid subscript type 'closure'.

Как мне go пересылать в этом?

Ответы [ 2 ]

2 голосов
/ 01 августа 2020

Использование lapply:

trial <- letters
buslist <- lapply(
  seq_along(trial),
  function(x, k){
    bus <- withTags(div(id = k,x[k]))
    return(bus)},
  x = trial)
names(buslist) <- letters
# > buslist
# $a
# <div id="1">a</div>
#   
#   $b
# <div id="2">b</div>
#   
#   $c
# <div id="3">c</div>

Вывод, у меня недостаточно репутации для публикации

1 голос
/ 01 августа 2020

Поскольку вы используете withTags, это делает функции доступными для всех элементов HTML. Так уж получилось, что tags$i - это функция, которая создает элементы itali c. Это маскирует вашу переменную итератора, таким образом, внутри функции R вещи, которые i являются функцией. Одно из решений - изменить имя вашего итератора

for (idx in 1:4 ){
  bus <- withTags(
    div(id = idx, trial[idx]))
  print(bus)
}

или пропустить withTags и просто вызвать

for (i in 1:4 ){
  bus <- tags$div(id = i, trial[i])
  print(bus)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...