R:按名称寻址多列数据帧

bri*_*tar 5 r data-visualization dataframe

我有一些具有足够高的维度(14)的数据集,一次性成对绘图是痛苦的.在那种情况下,我希望能够选择他们所在的数据帧的子集,但我只知道如何按编号对列进行寻址.回读代码时,这很烦人且不清楚:

partimat(MARKER ~ ., trim_data11[,c(1:5,NCOL(trim_data11))],method="qda")
Run Code Online (Sandbox Code Playgroud)

我想做的是这样的事情,这是行不通的:

partimat(MARKER ~ ., trim_data11$(c(AF3,F7,P8,O1,O2,MARKER)),method="qda")
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

Sim*_*lon 7

您可以使用您怀疑的名称来解决它们,只需将名称作为字符向量传递:

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

举个简单的例子:

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
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这也适用:df [c("x","z")]也可以工作(但不能使用矩阵). (2认同)
  • @Maxim.K是的,你只需要使用`,`如果你想按行分组,但我总是把它放在一边作为好习惯.这种方式有效,因为`df`是一个命名列表,而矩阵是*只是*一个长度为2的`dim`属性的向量. (2认同)