繁体   English   中英

删除R中某些数据框的列

[英]Removing columns of some data frames in R

我想从某些数据框中删除列A和B。 但是我所有的数据框没有相同的列。 例如,df1具有列A,B和C,因此:

df1 <- subset(df1 , select = -c(`A`,`B`))

但是df2有A和D列,而没有B列,所以我可以这样做:

df2 <- subset(df2 , select = -c(`A`))

由于我有很多数据帧,有没有办法更改也可用于第二个df的第一个代码,而不会出现列B不在第二个数据帧中的错误?

一种方法是使用setdiff

setdiff(names(df1), c('A', 'B'))

可以在subset “ select”参数中传递它

subset(df1, select = setdiff(names(df1), c('A', 'B')))

它可以包装在一个函数中并用于多个数据集

fsubset <- function(dat, colstoRemove){
    subset(dat, select = setdiff(names(dat), colstoRemove))
}


fsubset(df1, c("A", "B"))
fsubset(df2, c("A", "B"))

数据

df1 <- data.frame(A = 1:5, B = 6:10, C = 11:15)
df2 <- data.frame(A = 1:6, D = 11:16)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM