[英]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.