2013-04-26 21 views
4

我有一些数据集具有足够高的维度(14),因此一次性绘制成对数据会很痛苦。在那种情况下,我希望能够选择他们所在数据框的一个子集,但我只知道如何通过数字来处理列。R:按名称寻址多列数据帧

partimat(MARKER ~ ., trim_data11[,c(1:5,NCOL(trim_data11))],method="qda") 

我想什么做的是这样的事情,这不工作:当读回代码这是刺激性和不明确

partimat(MARKER ~ ., trim_data11$(c(AF3,F7,P8,O1,O2,MARKER)),method="qda") 

有没有办法做到这一点?

回答

6

你可以用名称解决他们为你怀疑,你只需要把这个名字通过为特征向量:

partimat(MARKER ~ ., trim_data11[, c("AF3","F7","P8","O1","O2","MARKER") ],method="qda") 

举个简单的例子:

df <- data.frame(x = runif(5) , y =runif(5) , z = runif(5)) 
df[,c("x","z")] 
#   x   z 
#1 0.5896444 0.1855764 
#2 0.3486369 0.4936727 
#3 0.1640928 0.1367027 
#4 0.3167399 0.6686943 
#5 0.7063566 0.6032699 
+1

注意这太:DF [ c(“x”,“z”)]也可以工作(但不能与矩阵配合使用)。 – 2013-04-26 10:02:01

+2

@ Maxim.K是的,如果你想按行排序,你只需要使用',',但总是把它放在一起,就像一个好习惯一样。这种方式是有效的,因为'df'是一个命名列表,而矩阵是*只是一个具有长度为2的dim属性的向量。 – 2013-04-26 10:04:02

+0

这样做!谢谢。 – 2013-04-26 10:05:57