我有一个提取数据框中的值并将它们分配给列表列表的标识符。示例:
Inupt1: BR 是我的列表列表,如下所示
$BR_1
[1] "id5" "id6" "id7" "id8" "id9" "id10"
$BR_2
[1] "id13" "id14" "id15" "id16" "id17" "id18" "id19"
输入2: DF 是我的数据框,如下所示:
Ids Value
id1 0
id2 0
id3 0
id4 0
id5 1
id6 1
id7 1
id8 1
id9 2
id10 2
id11 0
id12 0
id13 1
id14 2
id15 3
id16 3
id17 3
id18 2
id19 1
id20 0
期望的输出:
BR_1 (1,1,1,1,2,2) BR_2 (1,2,3,3,3,2,1)
然后从这些输出中我只需要那些没有最高分3(然后只有BR_1)的那些。
很抱歉,如果我对术语有点不正确的话。任何想法都非常感激。
答案 0 :(得分:0)
我同意Sotos'使用lapply
函数的想法。
您可以创建一个所有值都小于3的子集:
newDF = subset(DF, Value <3)
lapply(BR, function(x) newDF[match(x, newDF$Ids),"Value"])
或者您可以修改结果列表:
raw = lapply(BR, function(x) newDF[match(x, newDF$Ids),"Value"])
result = raw[sapply(raw, max) < 3]