【发布时间】:2018-10-12 19:57:31
【问题描述】:
我目前正试图通过在函数的帮助下重写一些部分来简化我的代码。我正在使用的功能之一是:
datasetperuniversity<-function(university,year){assign(paste("data",university,sep=""),subset(get(paste("originaldata",year,sep="")),get(paste("allcollaboration",university,sep=""))==1))}
执行函数 datasetperuniversity("Harvard","2000") 将在函数内产生如下结果:
dataHarvard=subset(originaldata2000,allcollaborationHarvard==1)
该函数几乎可以完美运行,只是它没有将结果存储在 dataHarvard 中。我读到这在函数中是正常的,使用
这里有一些数据:
sales = c(2, 3, 5,6)
numberofemployees = c(1, 9, 20,12)
allcollaborationHarvard = c(0, 1, 0,1)
originaldata = data.frame(sales, numberofemployees, allcollaborationHarvard)
【问题讨论】:
-
我想如果你重新排列你的数据,它会更容易。不要随身携带
originaldata2000、originaldata2001等——只需将它们放在一个带有年份列的表中即可。如果您的allcolaboration[uni]列是互斥的,请使用一个分类列而不是虚拟列。如果您有兴趣了解更多关于这一思路的信息:jstatsoft.org/article/view/v059i10 -
@Frank 感谢这个非常清晰且易于实施的建议。虽然我现在会使用这种方法,但我一直想知道我最初的问题是否可以回答合并所有数据集的情况是不可取的