我想分享一些软件作为一个软件包,但是我的一些脚本似乎并不像函数那样很自然。例如,考虑下面的代码块,其中'raw.df'是包含离散和连续类型的变量的数据帧。函数'count.unique'和'squash'将在包中定义。该脚本将数据框分成两个框架,'cat.df'被视为分类数据,'cts.df'被视为连续数据。在R软件包中包含R脚本
我的想法是,用户可以读取数据框'raw.df',获取脚本,然后交互编辑'cat.df'和'cts.df',也许组合一些分类和变换一些变量。
dcutoff <- 9
tail(raw.df)
(nvals <- apply(raw.df, 2, count.unique))
p <- dim(raw.df)[2]
(catvar <- (1:p)[nvals <= dcutoff])
p.cat <- length(catvar)
(ctsvar <- (1:p)[nvals > dcutoff])
p.cts <- length(ctsvar)
cat.df <- raw.df[ ,catvar]
for (i in 1:p.cat) cat.df[ ,i] <- squash(cat.df[ ,i])
head(cat.df)
for(i in 1:p.cat) {
cat(as.vector(table(cat.df[ ,i])), "\n")
}
cts.df <- raw.df[ ,ctsvar]
for(i in 1:p.cts) {
cat(quantile(cts.df[ ,i], probs = seq(0, 1, 0.1)), "\n")
}
现在,这当然可以作为函数返回一个包含nvals,p,p.cat,cat.df等的列表;然而这对我来说似乎相当难看。然而,将脚本包含在软件包中的唯一条件似乎是'demo'文件夹,这似乎不是正确的方法。对于如何进行的建议将非常感激。
(但感激之情不会因为它似乎是用注释表示感谢已弃用正式表达。)
我使用'研究所/脚本/'还能使文件真正的(可执行文件)脚本利特勒。 – 2014-09-30 03:51:09
为什么函数返回这些数量看起来很丑陋?是否因为它不会像脚本中那样打印出来?你可以使你自己的自定义打印功能做到这一点...... – Dason 2014-09-30 04:27:32
德克 - 你知道使用这种方法的包吗? – 2014-09-30 20:59:21