Зачем функции нужен тиббл в качестве аргумента, даже если он не используется внутри функции? - PullRequest
0 голосов
/ 21 мая 2019

Этот код работает как задумано:

my_tbl<-tibble(var1=c("a","a","a"), var2=c("b","b","b"))

string_to_match_list<-list("b")

my_row<-my_tbl[2,]

my_tbl$var2[2]<-match_every_cell_start_and_modify_with_binary(my_tbl, my_row, string_to_match_list)

match_every_cell_start_and_modify_with_binary<-function(my_tbl, my_row, string_to_match_list)

{

  match_bool<-any(sapply(my_row, startsWith, unlist(string_to_match_list)))  #matches start only of the string by whole string.

  if (match_bool)
  {
    return(1)
  } else
  {
    return(0)
  }
}

my_tbl

вывод:

# A tibble: 3 x 2
  var1  var2 
  <chr> <chr>
1 a     b    
2 a     1    
3 a     b 

Если я удаляю аргумент my_tbl из функции, match_every_cell_start_and_modify_with_binary код не работает, но я вижучто внутри функции my_tbl не используется.

ВОПРОСЫ:

  1. Почему для функции match_every_cell_start_and_modify_with_binary требуется my_tbl в качестве аргумента?

  2. Есть ли способ удалить my_tbl в качестве аргумента функции match_every_cell_start_and_modify_with_binary и не повлиять на ее функциональность?

...