【问题标题】:for columnX of each element in listA <- corresponding element in listB对于列表中每个元素的列 <- 列表中的对应元素
【发布时间】:2014-06-09 13:03:54
【问题描述】:

我有两个列表,一个由 data.frames 和一个与 data.frames 长度相同的字符向量组成。我想交换/覆盖列表ls.df 中的列X1 以获得ls.v 中的相应字符向量。基本上与df$X1 &lt;- v 一样,但对于列表中的每个项目。感觉很简单,但我无法绕过它。

#dummy data

df1 <- data.frame(rbind(c(1,'A'),c(2,'B'),c(3,'C'),c(4,'D'),c(5,'E'),c(6,'F')))
df2 <- data.frame(rbind(c(1,'A'),c(2,'B'),c(3,'C')))
df3 <- data.frame(rbind(c(4,'D'),c(5,'E'),c(6,'F')))

ls.df <- list(df1, df2, df3)

v1 <- c('a','b','c','d','e','f')
v2 <- c('a','b','c')
v3 <- c('d','e','f')

ls.v <- list(v1, v2, v3)

有没有例如apply-like 怎么做?任何指针将不胜感激,谢谢!

【问题讨论】:

    标签: r list vector dataframe apply


    【解决方案1】:

    您可以使用mapply

    名单:

    ls.df <- list(df1, df2, df3)
    ls.v <- list(v1, v2, v3)
    

    解决办法:

    mapply("[[<-", ls.df, value = ls.v, MoreArgs = list(1L), SIMPLIFY = FALSE)
    

    结果:

    [[1]]
      X1 X2
    1  a  A
    2  b  B
    3  c  C
    4  d  D
    5  e  E
    6  f  F
    
    [[2]]
      X1 X2
    1  a  A
    2  b  B
    3  c  C
    
    [[3]]
      X1 X2
    1  d  D
    2  e  E
    3  f  F
    

    【讨论】:

    • 非常感谢!我试过mapply,但必须了解更多关于使用"["进行索引的信息
    猜你喜欢
    • 2012-12-28
    • 1970-01-01
    • 2022-01-21
    • 2010-10-04
    • 1970-01-01
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    相关资源
    最近更新 更多