簡體   English   中英

從一個表中選擇數據從另一個表中選擇數據列,使用r

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

我的數據表 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 的圖像如下。

部分 ID 表

以下

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 條目?

謝謝你。

好的,根據您更新的問題,您似乎想對 dataframe tab進行子集化,僅選擇SM$ID列出的列。

你可以這樣做:

tab[,SM$ID]

我不確定您的要求到底是什么,但我會盡我所能來完成您的任務。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM