【问题标题】:Data from one table to select data columns from another table, using r一个表中的数据从另一个表中选择数据列,使用 r
【发布时间】:2021-07-17 14:53:03
【问题描述】:

我的数据表 tab 是 2000 x 500, y1 = col1, y2 = col2, y3 = col3 ...。 Y500 = col500。见图片。

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

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

SM的图片如下。

以下

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

拉入所有列条目。

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

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

有没有办法获取 SM 中的数据,使我能够在较大的数据表选项卡中选择所需的列?也就是说,SM col1 对应 tab col1,SM col22 对应 tab col22,以此类推。

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

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

谢谢。

【问题讨论】:

  • 为避免误解,我建议您提供一个具体且最小的示例,即table1 &lt;- ?table2 &lt;- ?(尺寸:只需给出几行),以及您想要的结果。
  • 和平,谢谢你的建议。我使用了一些屏幕抓取并编辑了我的问题,希望能够为我正在尝试做的事情增加一些清晰度。我希望屏幕抓取是可以接受的。

标签: r data-manipulation pca


【解决方案1】:

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

你可以这样做:

tab[,SM$ID]

【讨论】:

  • Akindele,这正是我一直在寻找的,现在可以应用于我正在使用的各种数据集,非常感谢
【解决方案2】:

我不太确定您的具体要求,但我会尽我所能解决您的任务。

假设 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)

【讨论】:

  • Akindele,谢谢输入。回想起来,我提交了一个结构很差的问题,这非常令人困惑。我希望它现在更清楚了。
猜你喜欢
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 2022-10-18
  • 2014-01-01
  • 2014-10-25
相关资源
最近更新 更多