数据从一个 table 到另一个 table 的 select 数据列,使用 r

Data from one table to select data columns from another table, using r

我的数据 table,选项卡,是 2000 x 500,y1 = col1,y2 = col2,y3 = col3 …。 Y500 = col500。见图。

我想对其中的一部分进行一些 PCA 工作,例如 y1 = col1,y22 = col22,y36 = col36,y41 = col41,等等。

一个单独的数据table,SM,包含列ID,并引用主数据table(选项卡)中的列我想考虑。有 200 个这样的条目。

SM图如下

以下

fit.std <- prcomp(tab, scale.=T)

拉入所有列条目。

如果我要考虑 200 个特定的数据列,手动输入列号将非常耗时且容易出错。

谁能告诉我如何从列 ID(在数据 table SM 中)获取数据到 select 数据 table 选项卡中的相应列,然后包含在 fit.std 行中?

有没有办法在 SM 中获取数据,使我能够 select 较大数据 table 选项卡中的所需列?换句话说,SM col1对应tab col1,SM col22对应tab col22,依此类推

fit.std <- promo(c(ID$*), scale = TRUE)

其中 ID$* 包含数据 table 我要与选项卡中的列匹配的 SN 条目?

谢谢。

我不太确定你到底要求什么,但我会尽力解决你的任务。

假设 tab 是一个包含 2000 行和 500 列的数据框。 SM 是一个数据框,其中 SM$ID 指的是 tab 中的列。

然后您可以使用以下方法获取 SM$ID 引用的列的列表:

list_of_cols <- lapply(SM$ID, function(x) tab[,x])

如果您想将此向量列表折叠(或“展平”)为单个向量,您可以执行以下操作:

single_vec <- unlist(list_of_cols)

好的,根据您更新的问题,您似乎想要对数据框 tab 进行子集化,仅选择 SM$ID.

中列出的列

你可以这样做:

tab[,SM$ID]