Повторите расчет для переменных с тем же root - PullRequest
3 голосов
/ 07 мая 2020

Это игрушечный фреймворк:

mydata<-structure(list(katz1 = c(1, 1, 1, 0, 1, 1, 1, 1, 1, 0), katz2 = c(1,
1, 1, 1, 1, 1, 1, 1, 1, 1), katz3 = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)), row.names = c(NA, 10L),
class = c("tbl_df", "tbl", "data.frame" ))

Я хочу получить таблицу для каждой переменной katz с al oop. Это не сработало:

for (i in 1:3) 
{
  item<-paste0("mydata","$","katz",i)
  table(item,useNA="ifany")
}

Он создает элемент, но таблица к нему не применяется.

Что не так?

Спасибо.

1 Ответ

1 голос
/ 07 мая 2020

Вместо этого используйте только имя столбца для подмножества в скобках.

for (i in 1:3) {
  item <- paste0("katz", i)
  print(table(mydata[, item], useNA="ifany"))
}

Или, чтобы избежать циклов for, используйте grepl в lapply. Это идентифицирует столбцы, содержащие "katz" в своих именах, и применяет к ним table.

lapply(mydata[grepl("katz", names(mydata))], table, useNA="ifany")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...