xtable
в Sweave
отлично работает, но делает по одной таблице для каждой регрессии. Вы также можете передать ему фрейм данных, поэтому я вручную rbind
и вставлял
результаты во фреймы данных, но это не кажется очень масштабируемым.
Is есть ли более автоматизированное / надежное решение, которое работает как xtable
, но с несколькими объектами lm
? Все ли таблицы, которые я вижу в статьях / книгах, созданы вручную? Есть ли лучшее решение для моего дряблого кода, который генерирует фрейм данных для передачи в xtable
?
library(reshape2)
data <- data.frame(matrix(rnorm(50), 10, 5))
names(data) <- letters[1:5]
l.raw <- list()
l.raw[["a"]] <- lm(a ~ d + e, data=data)
l.raw[["b"]] <- lm(b ~ d + e, data=data)
l.raw[["c"]] <- lm(c ~ d + e, data=data)
form.table.from.lm <- function(l.raw) {
summ <- list()
for (i in names(l.raw)) {
temp <- coef(summary(l.raw[[i]]))
summ[[i]] <- data.frame(param=rownames(temp), test=i, temp)
}
df.res <- do.call("rbind", summ)
df.res <- transform(df.res, t.value = paste("(", signif(t.value), ")", sep=""), Estimate = signif(Estimate))
df.res.long <- melt(df.res, id.vars=c("test", "param"))
df.res.wide <- dcast(df.res.long, test + variable ~ param)
temp <- subset(df.res.wide, variable %in% c("Estimate", "t.value"))
df.res <- temp[, -2]
df.res[, 1] <- as.vector(rbind(names(l.raw), ""))
colnames(df.res)[1] <- "regressor"
return(df.res)
}
Который производит фрейм данных:
regressor (Intercept) d e
1 a 0.393996 -0.666721 0.159508
2 (0.573926) (0.422125) (0.526446)
5 b 0.611077 0.0288942 -0.70033
6 (0.32696) (0.24048) (0.299911)
9 c -0.101033 -0.287821 0.14581
10 (0.203193) (0.149449) (0.186383)
Учитывая великолепные пакеты построения графиков для R, я чувствую себя как google и rseek что-то скрывают от меня.
#include Я скомпилировал следующий пример: из cplusplus.com/reference и получаю предупреждение компилятора: Что здесь не так? Предполагается, что подпись постфикса должна быть Где-то определено, как должна выглядеть подпись постфикса на итераторах STL? #include
iterator.cpp: In member function 'myiterator& myiterator::operator++(int)':
iterator.cpp:13: warning: reference to local variable 'tmp' returned
myiterator operator ++ (int)
, т.е. возвращаться по значению?