【问题标题】:R lapply on list of dataframes resetting rownamesR lapply 在数据框列表上重置行名
【发布时间】:2013-06-05 10:55:24
【问题描述】:

您可以通过运行来重置数据框中的行名

>rownames(df) <- NULL

我有一个数据框列表,想重置列表中每个数据框的所有行名,我试过了

>newlist <- llply(mylist, function(df) { rownames(df) <- NULL })

但tit不起作用,返回一个NULLS列表,原来的保持不变。

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    这是基本功能lapply的工作;你不需要加载 plyr。您还需要确保您的匿名函数返回一些内容。

    df1 <- data.frame(a=1:10)
    rownames(df1) <- letters[1:10]
    
    df2 <- data.frame(b=1:10)
    rownames(df2) <- LETTERS[1:10]
    
    mylist <- list(df1,df2)
    
    mylist <- lapply(mylist,function(DF) {rownames(DF) <- NULL; DF})
    

    【讨论】:

    • +1 如果你想更简洁一点,你可以写lapply( mylist , `rownames&lt;-` , NULL )
    【解决方案2】:

    使用rownames&lt;-

    newlist <- lapply(mylist, "rownames<-", NULL)
    

    【讨论】:

    • 这似乎与 Roland 的回答或我在他回答下的后续评论没有任何不同(除了化妆品)。
    • 没有注意到你的评论。这个确实使用双引号:)
    猜你喜欢
    • 2020-06-05
    • 2022-01-14
    • 1970-01-01
    • 2021-01-07
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多