Всегда лучше предоставить минимальный воспроизводимый пример :
df1 <- data.frame(V1 = 1:3,
V2 = 4:6,
V3 = 7:9)
df2 <- data.frame(snp = c("V2", "V3"),
stringsAsFactors=FALSE)
Теперь мы можем использовать вектор символов для индексации нужных столбцов:
df1[, df2$snp]
Возвращает:
V2 V3
1 4 7
2 5 8
3 6 9
Редактировать:
Не могли бы вы знать, как это сделать, чтобы он сохранил столбец "i..POP" в data2 ?
df1 <- data.frame(ID = letters[1:3],
V1 = 1:3,
V2 = 4:6,
V3 = 7:9)
names(df1)[1] <- "ï..POP"
df2 <- data.frame(snp = c("V2", "V3"),
stringsAsFactors=FALSE)
Мы можем использовать c
для объединения имен столбцов:
df1[, c("ï..POP", df2$snp)]
ï..POP V2 V3
1 a 4 7
2 b 5 8
3 c 6 9