我有一个数据帧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上进行分组,但为什么不在它们上面呢?
答案 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)))]