选择R表中的非连续列

use*_*301 21 r

假设我有一些表,T.假设T有5列.我理解如何选择任何连续的列子集并将它们存储为新表.为此我会在逗号右边使用括号和冒号:

newT <- T[,2:4]   # creates newT from columns 2 through 4 in T
Run Code Online (Sandbox Code Playgroud)

但是如何选择非连续列进行子集化?假设我想选择第1列和第3列?我该怎么做呢?我可能想做的另一种选择,不知道如何,从T中选择随机列.

Tom*_*mmy 36

您只需先生成所需的索引即可.该c函数允许您连接值.值可以是列索引或列名称(但不能混合).

df <- data.frame(matrix(runif(100), 10))
cols <- c(1, 4:8, 10)
df[,cols]
Run Code Online (Sandbox Code Playgroud)

您还可以通过指定负索引来选择要删除的列索引:

df[, -c(3, 5)] # all but the third and fifth columns
Run Code Online (Sandbox Code Playgroud)