我有两个矩阵,我想按行应用函数:
matrixA
GSM83009 GSM83037 GSM83002 GSM83029 GSM83041
100001_at 5.873321 5.416164 3.512227 6.064150 3.713696
100005_at 5.807870 6.810829 6.105804 6.644000 6.142413
100006_at 2.757023 4.144046 1.622930 1.831877 3.694880
matrixB
GSM82939 GSM82940 GSM82974 GSM82975
100001_at 3.673556 2.372952 3.228049 3.555816
100005_at 6.916954 6.909533 6.928252 7.003377
100006_at 4.277985 4.856986 3.670161 4.075533
Run Code Online (Sandbox Code Playgroud)
我发现了几个类似的问题,但没有很多答案:mapply for matrices,Multi matrix row-wise mapply?.我现在的代码已经按行将矩阵拆分成列表,但是必须拆分它会使它相当慢并且不比for循环快得多,因为我在每个矩阵中有近9000行:
scores <- mapply(t.test.stat, split(matrixA, row(matrixA)), split(matrixB, row(matrixB)))
Run Code Online (Sandbox Code Playgroud)
函数本身非常简单,只需找到t值:
t.test.stat <- function(x, y)
{
return( (mean(x) - mean(y)) / sqrt(var(x)/length(x) + var(y)/length(y)) )
}
Run Code Online (Sandbox Code Playgroud) 我无法让ModelMultipleChoiceField显示模型实例的初始值.我一直无法找到有关该领域的任何文档,我一直在阅读的例子太令人困惑了. Django:ModelMultipleChoiceField没有选择初始选择似乎是相似的,但是那里给出的解决方案对模型实例来说不是动态的.
这是我的情况(每个数据库用户连接到一个或多个项目):
models.py
from django.contrib.auth.models import User
class Project(Model):
users = ManyToManyField(User, related_name='projects', blank=True)
Run Code Online (Sandbox Code Playgroud)
forms.py
from django.contrib.admin.widgets import FilteredSelectMultiple
class AssignProjectForm(ModelForm):
class Meta:
model = User
fields = ('projects',)
projects = ModelMultipleChoiceField(
queryset=Project.objects.all(),
required=False,
widget=FilteredSelectMultiple('projects', False),
)
Run Code Online (Sandbox Code Playgroud)
views.py
def assign(request):
if request.method == 'POST':
form = AssignProjectForm(request.POST, instance=request.user)
if form.is_valid():
form.save()
return HttpResponseRedirect('/index/')
else:
form = AssignProjectForm(instance=request.user)
return render_to_response('assign.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)
它返回的表单不是选择实例的链接项目(它看起来像:Django多选小部件?).此外,它不会使用保存表单时所做的任何选择来更新用户.
编辑:使用此方法管理解决此问题:http://code-blasphemies.blogspot.com/2009/04/dynamically-created-modelmultiplechoice.html
我有一个很大的非唯一命名值列表,即:
tscores
11461 11461 11461 11461 14433
-1.966196e+01 7.808853e-01 2.065178e+01 5.630565e+00 -7.295436e+00
14433 14433 14433 14433 14433
2.036339e+00 -6.704906e+00 1.603803e+00 -1.118324e+01 1.450554e+00
14102 16153 16189 18563 18563
-1.137429e+01 7.053336e-02 1.011208e+00 -7.811194e+00 -6.749376e-01
18563 18563 22042 22042 22042
7.480217e-01 -9.909211e-01 -9.577424e-01 -7.887699e-02 -4.867706e-01
Run Code Online (Sandbox Code Playgroud)
我希望能够更有效地提取与名称对应的所有值的子向量.目前,我正在使用:
u_tscores <- sapply(unique(names(tscores)), function(name, scores) {mean(scores[names(scores)==name])}, scores=tscores)
Run Code Online (Sandbox Code Playgroud)
这对我需要的东西来说太慢了.我知道必须有一种更简单的方法来获得具有相同名称的所有值.