簡體   English   中英

來自data.frames列表的子集

[英]Subset from a list of data.frames

我有一個data.frames列表。 假設列表由10個data.frames組成。 我想首先根據存儲在另一個文件中的名稱列表重命名每個data.frames列表。 其次,假設data.frames名為“ Pippo”,而“ Pippo”是data.frame的元素。 我想通過以下方式子集:

假設這是data.frames列表中名為“ Pippo”的data.frame:

 Name Sample1 Sample2 Sample3 Sample4 John 1 0 -3 -7 Michael 0 4 2 21 Pippo 1 1 23 0 

我想根據“ Pippo”值== 1子集所有元素,以便輸出為:

 Name Sample1 Sample2 John 1 0 Michael 0 4 Pippo 1 1 

這將對data.frame列表的所有名稱完成,因為每個名稱都是data.frame的元素。

ldf為您的數據幀列表。 您可以使用以下方式更改列表的名稱:

names(ldf) <- v

其中v是字符向量。

對於第二步(子集),這應該起作用:

subset.ldf <- mapply(ldf, names(ldf),
                     function(x, name) x[, x[name, ] == 1, drop = FALSE])

或基於向量的解決方案:

d = data.frame(name=c('john','michael','pippo'), sample1 = c(1,0,1),
           sample2 = c(0,4,1), sample3 = c(-3,2,23), sample4 = c(-7,21,0))

sel = d[d$name == 'pippo',2:5]; sel = c(TRUE, sel == 1)
d[,sel]

暫無
暫無

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

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