【问题标题】:subset one list on another将一个列表子集到另一个列表上
【发布时间】:2012-12-05 22:03:35
【问题描述】:

我一直在查看 mapply 文档,但找不到足够接近的示例来帮助我入门。

我有列表foobar

set.seed(123)
f   <- data.frame(y=1:10,x=sample(LETTERS,10))
foo <- list(f,f)
b   <- data.frame(x=c("J","U","A"))
ba  <- data.frame(x=c("J","W"))
bar <- list(b,ba)

我可以使用b 子集f

result <- f[f$x %in% b$x ,]

我想做这个子集,但对于整个列表 foobar 即子集 foo[[1]] by foo[[1]]["x"] on bar[[1]]foo[[2]] by foo[[2]]["x"] on bar[[2]] 等...

结果是:

>foo
[[1]]
    y x
3   3 J
4   4 U
6   6 A

[[2]]
    y x
3   3 J
5   5 W

【问题讨论】:

    标签: r list subset


    【解决方案1】:

    像这样...?

    mapply(merge,foo,bar,SIMPLIFY = FALSE)
    [[1]]
      x y
    1 A 6
    2 J 3
    3 U 4
    
    [[2]]
      x y
    1 J 3
    2 W 5
    

    【讨论】:

    • 把事情简化为你已经解决的问题对吧?..facepalm
    • @user1320502 :) 学习已经发生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    相关资源
    最近更新 更多