R Попытка запустить dfsummary и freqs для нескольких подмножеств набора данных в качестве макроса - PullRequest
0 голосов
/ 05 ноября 2019

Orange - это установленный по умолчанию набор данных из пакета наборов данных, и он ближе всего к моим реальным данным. Я добавил еще один столбец с текстом с пробелами, так как он представляет этот столбец в моих реальных данных, который также имеет пробелы и то, что он должен быть подмножеством. И я знаю, что могу просто скопировать и вставить код dfsummary и freq 13 раз (сколько мне нужно на самом деле), но я действительно не хочу этого делать. Кто-нибудь может заставить это работать? Я хочу, чтобы новые наборы данных были Tree1, Tree2, Tree3, Tree4 и Tree5, но функция paste () не нравится то, что я написал, и я хочу получить dfsummary и freqs (из summarytools) для каждого подмножества.

orange <- data.frame(Orange)

#Add a another variable to play with.
orange$row[orange$Tree==1] <- "Row 1"
orange$row[orange$Tree==2] <- "Row 2"
orange$row[orange$Tree==3] <- "Row 3"
orange$row[orange$Tree==4] <- "Row 4"
orange$row[orange$Tree==5] <- "Row 5"

#start macro
bytree <- defmacro(df, tree, row,
                     expr={

                       #subset for tree
                       paste(Tree,tree) <- subset(df, row==row)

                       #write out the dfsummary info
                       #Be sure to include the varnumbers=FALSE or you'll have the 1, 2, 3, on the left side.
                       dfSummary(paste(Tree,tree), style = "grid", plain.ascii = TRUE,
                                 varnumbers = FALSE, valid.col = FALSE, tmp.img.dir = "./img")

                       freq(paste(Tree,tree)[ ,c("age", "circumference")])

                     })


bytree(orange,1,"Row 1")
bytree(orange,2,"Row 2")
bytree(orange,3,"Row 3")
bytree(orange,4,"Row 4")
bytree(orange,5,"Row 5")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...