【问题标题】:List all column except for one in R [duplicate]列出除R中的一列之外的所有列[重复]
【发布时间】:2012-10-03 19:56:11
【问题描述】:

可能重复:
Drop Columns R Data frame

假设我有一个包含 c1、c2、c3 列的数据框。

我只想列出 c1 和 c2。我该怎么做?

我试过了:

head(data[column!="c3"])
head(data)[,2]
head(data[!"c3"])

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    如果您要按名称查找负索引(除了 tcash21's numeric indexing),我知道以下几种方法,其中一些方法比其他方法风险更大:

    mtcars[, -which(names(mtcars) == "carb")]  #only works on a single column
    mtcars[, names(mtcars) != "carb"]          #only works on a single column
    mtcars[, !names(mtcars) %in% c("carb", "mpg")] 
    mtcars[, -match(c("carb", "mpg"), names(mtcars))] 
    mtcars2 <- mtcars; mtcars2$hp <- NULL         #lost column (risky)
    
    
    library(gdata) 
    remove.vars(mtcars2, names=c("mpg", "carb"), info=TRUE) 
    

    一般我用:

    mtcars[, !names(mtcars) %in% c("carb", "mpg")] 
    

    因为我觉得它安全高效。

    【讨论】:

    【解决方案2】:

    您可以索引并使用负号删除第 3 列:

    data[,-3]
    

    或者您可以只列出前 2 列:

    data[,c("c1", "c2")]
    data[,1:2]
    

    不要忘记逗号和引用数据框的工作方式如下:data[row,column]

    【讨论】:

    • 关于你的最后一句话,你在处理数据框时实际上不需要逗号,因为它们是列表。
    • 当然,但如果您要发表评论,至少要展示一个示例,说明如何不使用逗号访问列表。
    • 例如x[1,2] = x[[2]][[1]]
    猜你喜欢
    • 2013-03-23
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多