R dataframe中的子集列问题?

时间:2017-12-04 16:10:04

标签: r dataframe subset

我有一个数据帧df,我想按以下方式进行分组:

第1-7列和列cols:

的向量
cols = c("rs1057079", "rs1057079.1", "rs4845882", "rs4845882.1", "rs1891932", "rs1891932.1", "rs530296", "rs530296.1", "rs10497340", "rs10497340.1")

所以我所做的是df[, c(1:7, cols)]但是R会抛出错误:

Error in `[.data.frame`(df, , c(seq(1:7), SNPs_dup)) : 
  undefined columns selected

这里有什么问题?我可以在1:7和cols上进行分组,但为什么不在它们上面呢?

1 个答案:

答案 0 :(得分:1)

c(1:7, cols)将序列1:7强制转换为字符,这些字符进一步被视为列名'1', '2' ...而非列位置,您可以提取1-7列名称,然后连接到cols和子集:

df[,c(names(df)[1:7], cols)]

或将cols转换为职位:

df[,c(1:7, match(cols, names(df)))]