【问题标题】:Manipulate data frame inside a list操作列表中的数据框
【发布时间】:2013-06-11 21:09:47
【问题描述】:

这大概是一个简单的问题,但我一直找不到答案。 我想删除列表内的数据框的一列。

x1<- rnorm(100,0,1)
x2<- rnorm(100,0,1)
x3<- rnorm(100,0,1)
x4 <- rnorm(100,0,1)

df1 <- data.frame(x1,x2,x3)
df2 <- data.frame(x4)

l1 <- list(df1,df2)

l1[1]

data.frame(l1[1])[,-1]

l1[1] <- data.frame(l1[1])[,-1]

考虑这个示例,其中两个数据帧 df1 和 df2 在列表 l1 中。 我想从 df1 中删除 x1 列。如果这只是一个数据框,这很简单。 但是一旦进入列表,我不确定如何操作这个数据框。 当我尝试在最后一条语句中覆盖它时,出现错误。

我的实际问题是一个列表中有大约 100 个数据框,其中大约 10% 有一个额外的列需要删除。我可以用 lapply 语句轻松识别它们,但我不知道如何操作它们。

谢谢!

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    代替

    l1[1] <- data.frame(l1[1])[,-1]
    

    使用

    l1[[1]] <- data.frame(l1[1])[,-1]
    

    【讨论】:

    • 这里的重要区别是[[ 访问列表的元素,而[ 访问子列表
    • 非常感谢 joran 和 user2194122!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2021-09-05
    • 1970-01-01
    • 2013-09-26
    相关资源
    最近更新 更多